Why 5000 GC root objects?

Hi,
using a JVMTI agent I found out that our application has more than 5000 root objects for GC. I would expect that there are some root objects for each thread used, but we only have ~20 Threads per process.
The list of roots shows lots of class objects (not all) and some other java.lang.* objects. But what I was wondering about is that several application specific objects are classified as roots too.
So, here are my questions:
1. In Java we have object trees. Does each tree has only one single root or several roots?
2. Do we even have several trees?
3. What is nessecary to classify an application object as root!
4. Why exist so many roots? Is it due to performance gain as shorter paths are necessary to identify an object as alive?
If you can tell me where I can find the answers (papers, books, ... ) it would be enough even though a direct answer is welcome too :-).
Thanks ---Robert

At first: what I call roots in the sense of JVMTI are those "always alive bootstrap loaded classes" ?
Then with that my problem is that I do not only have class objects as roots. There are several thread objects, error and exception objects and even byte/short/integer array elements which are classified as roots. Additional there are those application OBJECTS which are classified as roots.
Its seems to me that you always speak about class objects as roots, but I have about 60% out of those 5000 roots as normal objects.
[Bootstrap classpath]
All classes from this class path become roots as they are loaded by the bootstrap loader?
--Robert                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Similar Messages

  • "New root object" menu not available

    I'm using SJS Directory Server 5.2patch3 on Solaris 9, installed silently through state file and all seems to work fine (even if I don't understand why I have to repeat the installation more than one time since the first one doesn't create the proper directory structure inside the installation directory).
    Through the Server Console, I created then a new subfix (o=people,dc=my) with its individual database under the userRoot (dc=my) and now I'm trying to create a new root object under the configuration panel (o=people which would reference to the dedicated database created in the previous step). That menu option is not available, which appears a bit strange since I'm logged in as cn=Directory Manager, which should have the proper rights to complete this operation.
    The only solution would be to initialize the database through an LDIF file but I don't have a clue about all the attributes I should assign to that organization, acis ecc. It would be simpler to use the console; at least, I'm curious WHY the console doesn't allow to accomplish that step.
    Any help greatly appreciated.
    Many thanks,
    Fabio

    The "New Root Object" task only appears if you created a new suffix.
    Have you done a right-click on the server or on the "dc=my" entry?
    Tested this for you some minutes ago with DS5.2Patch3 on Solaris9/SPARC and it worked out fine.

  • Can't create new root object?

    i have created new suffix,and i want to add them into directory.so i click create "new root object" in menu "directory" .
    but i return , u have no the admin right to do this!
    but i used the user "admin" to login,it have the right to admin the directory server!
    why?
    tks a lot...

    This can only be done by
    cn=Directory Manager
    User admin is allowed to change anything inside a tree, but not to start a new tree (root suffix)
    Regards,
    Niels

  • BOL - creation of MarketingProject root object failed

    Dear All,
    I'm trying to create MarketingProject root object in ABAP. I think the problem is with some parameters, but I've tried to provide the same parameters as an existing Marketing Project has, but still got 'creation failed'.
    Part of code:
    DATA:
    lo_bol_core       TYPE REF TO cl_crm_bol_core,
    lo_factory        TYPE REF TO cl_crm_bol_entity_factory,
    lo_entity         TYPE REF TO cl_crm_bol_entity,
    lt_params         TYPE        crmt_name_value_pair_tab.           
    lo_factory = lo_bol_core->get_entity_factory( 'MarketingProject' ).
    lt_params = lo_factory->get_parameter_table( ).
    lo_entity = lo_factory->create( lt_params ).
    or
    DATA:
    lo_bol_core       TYPE REF TO cl_crm_bol_core,
    lo_factory        TYPE REF TO cl_crm_bol_entity_factory,
    lo_entity         TYPE REF TO cl_crm_bol_entity,
    lt_params         TYPE        crmt_name_value_pair_tab,  
    ls_params         TYPE        crmt_name_value_pair.        
    lo_factory = lo_bol_core->get_entity_factory( 'MarketingProject' ).
    ls_params-name = 'OBJECT_TYPE'.
    ls_params-value = 'CPG'.
    APPEND ls_params TO lt_params.
    ls_params-name = 'OBJECT_NAME'.
    ls_params-value = 'Campaign'.
    APPEND ls_params TO lt_params.
    ls_params-name = 'DISPLAY_AUTHORITY'.
    ls_params-value = 'X'.
    APPEND ls_params TO lt_params.
    lo_entity = lo_factory->create( lt_params ).
    in both cases lo_entity is still INITIAL. I've tried to provide many parameters by inserting crmt_name_value_pair into lt_params, but it doesn't change anything. Creation from WebUI works with only two parameters - OBJECT_TYPE and EXTERNAL_ID. What's the problem in my case?
    Thanks in advance

    Hello Harshit,
    I can read my collection with:
    DATA: current TYPE REF TO if_bol_bo_property_access,
                lr_entity TYPE REF TO cl_crm_bol_entity.
    current  = me-> typed_context->partner->collection_wrapper->get_current( ).
    I can also read my customcontroller. But still cann't get the entity with:
    lr_entity ?= me-> typed_context->partner->collection_wrapper->get_current( ).
    Do you have another idea?
    Thanks and regards,
    John

  • Root object is missing or invalid

    Received the following message when attempting to open a pdf file in an email.  "There was an error opening this document.  The root object is missing or invalid."   I was using MS Outlook 2007.  Unknown what program the email sender was using to create the PDF file or to send the e-mail.  I can open other PDF files from other senders.
    Thanks.

    Ask the sender to resend the file. Sometimes pdfs get corrupted in the mail. If it won't get blocked sending pdfs as zipped files generally prevents the issue. But some companies ban zipped attachments.

  • Why when I edit object in acrobat x are the images sometimes rotated or lose their clipping paths?

    Why when I edit object in acrobat x are the images sometimes rotated or lose their clipping paths?

    Have you looked at re-arranging the reading-order itself under View/Navigation Panels/Order/
    This will provide you with the ability to fine-tune content for reflow and read-aloud ..
    Hope this helps,
    Jon

  • Root object not apparing in genil model browser

    hi experts,
    i am trying to create one new genil model. i followed below steps to create it.
    1. create one new component, component set and assinged the component to component set.
    2. created one new z class with CL_CRM_GENIL_ABSTR_COMPONENT as super class.
    3. created one key structures, attribute strucutres as required.
    4. created object table and model table and i created one entry in the object table for root object.
    5. i added the entry in component basic settings in spro also with new component, class, object and model table.
    the problem is when open execute my new component in genil_model_browser, i could not find my root object there. nothig was added there. did i miss any step or is there any mistake in my approach.
    when i open s02 compoent in this transaction , i could see lot of root objects. but in above way , nothing was added . kindly help me.

    You have to do the following
    a) Modify the object table.
    b) Modify the model table.
    c) Implement the method    IF_GENIL_APPL_MODELGET_MODEL &   IF_GENIL_APPL_MODELGET_OBJECT_PROPS.Here you have to return the objects & models created earlier.
    Regards
    Kavindra

  • How to add  z object to root object in BOL

    hi,
    I have to add my z object to BuilStandardAddress (standard object for BP Address ).I hav created a external object by using ztable.I can see that object in transaction GENIL_MODEL_BROWSER as a Root Object but I hav to add this object as dependent object under BuilStandardAddress .
    Please suggest any possible solution for this.
    Thanks in Advance.
    Hem

    hi carsten,
    Thanks a lot for reply.
    Acc to my opinion there is 2 method first one is enhance standard implementaion class.
    second one is to use this class.CL_CRM_GENIL_GEN_TABLE_OBJ
    I opt. second mehtod:
    Actually ,Our requirement is that we hav to add some custom  fields in addresss view.If weadd custom fields through EEWB then it adds fields to builheader rather then standard address.To achieve this I have created a external object and assign a impleimentation class (CL_CRM_GENIL_GEN_TABLE_OBJ). after this I hav define Object defination in which I define this object as dependent object of builstandardaddress.and give my z table name.After that I hav define Model defination in which i hav define relationship.By doing this I am able to use my object in view.Now I added this z attribute to the standardaddress node of standaddress view of component BP_ADDR.
    Now, I can see this field on UI screen but My Implementation Class has some methods(like modify, Save )that will save the data in z table.these methods are not calling at runtime.
    Plz suggest any solution
    Hem
    Edited by: janawa hemlata on Dec 4, 2008 7:31 AM

  • Unable to find a qualifications catalog for the root object specified-ESS

    Hi SDN,
    We are getting following exception Unable to find a qualifications catalog for the root object specified   when click on Add New Skill in Skills Profile, ESS . It is working fine , if user is assigned sap_all role. This is issue with permissions. Which role need to be assigned to work with Skills Profile in r3. Please help me out.
    regards,
    Sree.

    Have a look in table T77S0 for an entry called QUALI ESSST and make sure the object ID stored there matches the appropriate node in your qualifications catalogue.
    This setting is designed to be used for restricting ESS users to a particular part of the Quals Catalogue.
    If the table entry was configured in your development system, it may not match the obect numbers in your production system.

  • Why do we lock objects in a transport ?

    hi,
    why do we lock objects in a transport in SE09 ? whats the benefit/impact ?
    thks

    Yes Thomas, today is my TRANSPORTS day
    and btw, just to confirm about locking, I have a transport moved from old system to the new one which contains this object say a function group!!.
    Now I modify this FG in the new system and include in a different transport.
    Due to some reason (errors encountered during transport movement), it is decided that the old transport is going to be moved from old system to new system once again. Will this impact the object that I have modified and included in the new request in the new system ?? Is it bcos of this I am asked to lock and continue my work on that ??
    hope i have not confused you

  • Transaction to create root object in genil component.

    hi all ,
    may be it seems to be basic question. i am following one tutorial where they are creating one genil component. in order to create root object, they told to run the transaction GENIL_MODEL_EDITOR. but i couldnt find the this transaction in my system. is there any other transaction to create root objects for genil component in CRM. kindly help me.

    Hey praveen,
    If you dont use ehp1, there is no any transaction to create root object. you can fallow this [wiki|http://wiki.sdn.sap.com/wiki/display/CRM/CreateaZBOLObjectPart1] page.
    Regards,
    Zafer,

  • "there was an error opening this document the root object is missing or invalid" adobe reader 9

    I get the following message every time I try an open some of my saved PDF files in Adobe Reader 9
    "there was an error opening this document. the root object is missing or invalid."
    these files are not down loaded from a website, they are files I greated some time back and I have not opened in a while.
    I am runing window XP and this dos not happen with all my PDF files.
    can you help.
    James

    Sounds like the files are corrupt. Time to restore them from a good backup.

  • Why jvm maintains string pool only for string objects why not for other objects?

    why jvm maintains string pool only for string objects why not for other objects? why there is no pool for other objects? what is the specialty of string?

    rp0428 wrote:
    You might be aware of the fact that String is an immutable object, which means string object once created cannot be manipulated or modified. If we are going for such operation then we will be creating a new string out of that operation.
    It's a JVM design-time decision or rather better memory management. In programming it's quite a common case that we will define string with same values multiple times and having a pool to hold these data will be much efficient. Multiple references from program point/ refer to same object/ value.
    Please refer these links
    What is Java String Pool? | JournalDev
    Why String is Immutable in Java ? | Javalobby
    Sorry but you are spreading FALSE information. Also, that first article is WRONG - just as OP was wrong.
    This is NO SUCH THING as a 'string pool' in Java. There is a CONSTANT pool and that pool can include STRING CONSTANTS.
    It has NOTHING to do with immutability - it has to do with CONSTANTS.
    Just because a string is immutable does NOT mean it is a CONSTANT. And just because two strings have the exact same sequence of characters does NOT mean they use values from the constant pool.
    On the other hand class String offers the .intern() method to ensure that there is only one instance of class String for a certain sequence of characters, and the JVM calls it implicitly for literal strings and compile time string concatination results.
    Chapter 3. Lexical Structure
    In that sense the OPs question is valid, although the OP uses wrong wording.
    And the question is: what makes class Strings special so that it offers interning while other basic types don't.
    I don't know the answer.
    But in my opinion this is because of the hybrid nature of strings.
    In Java we have primitive types (int, float, double...) and Object types (Integer, Float, Double).
    The primitive types are consessons to C developers. Without primitive types you could not write simple equiations or comparisons (a = 2+3; if (a==5) ...). [autoboxing has not been there from the beginning...]
    The String class is different, almost something of both. You create String literals as you do with primitives (String a = "aString") and you can concatinate strings with the '+' operator. Nevertheless each string is an object.
    It should be common knowledge that strings should not be compared with '==' but because of the interning functionality this works surprisingly often.
    Since strings are so easy to create and each string is an object the lack ot the interning functionality would cause heavy memory consumption. Just look at your code how often you use the same string literal within your program.
    The memory problem is less important for other object types. Either because you create less equal objects of them or the benefit of pointing to the same object is less (eg. because the memory foot print of the individual objects is almost the same as the memory footpint of the references to it needed anyway).
    These are my personal thoughts.
    Hope this helps.
    bye
    TPD

  • How to find this Search object relavant to which root object?

    Hi All,
      how to find this Search object relavant to which root object?
      As I am having search object 'BTQuery1O', so which is root object for this?
      how to find this?

    Hi Carl,
               Search object BTQuery1O and the attribute structure associated with it is CRMST_QUERY1O_BTIL,
               even if we enhance this structure with zfield, as it is search object, then it should queried on some main database
               table, so it is 'CRMD_ORDERADM_H', here we need to add our zfield first to it, so that after added to search object then
               only search query work, so that's the reason I am asking is it possible to find 'CRMD_ORDERADM_H' relevant from
               GENIL_MODEL_BROWSER, or any way also?

  • GenIL: Application ACI - create root object ACIActionContext

    Hello.
    I need to know how to access the root object 'ACIActionContext' (within the component set ACI) for a given one-order object (guid). I did not find (or maybe oversaw) a corresponding relation ship between business transactions and actions.
    Many thanks and kind regards.
    C. Augustin
    Edited by: Christian Augustin on Sep 30, 2008 2:16 PM

    Hey praveen,
    If you dont use ehp1, there is no any transaction to create root object. you can fallow this [wiki|http://wiki.sdn.sap.com/wiki/display/CRM/CreateaZBOLObjectPart1] page.
    Regards,
    Zafer,

Maybe you are looking for

  • Lenovo 3000 G530 Notebook - Windows XP Installation

    I am using Lenovo 3000 G530 Notebook with Windows Vista. Now I wanted change to Windows XP but it is not recognising Hard Drive. Please help me to install XP in my Notebook

  • Any way to stop Pages (current) from creating Table of Contents when converting to ePub. My PDF conversion is perfect  Thanks

    Any way to stop Pages (current) from creating Table of Contents (in this case Chapter 1) when coverting from Pages to ePub. This messes up my book.  The PDF file created is perfect! Thanks for any help.  Jim

  • How do i get across the pagee? :(

    i just got an ipod nano, i plugged it into the USB it took me to the ipod software license agreement and i can't scroll across to the right to be able to click agree, there is no scroll bar and i'm afraid my screen is too small... what do i do ?

  • HashMap and reference

    Hi, In HashMap or any other collection framework in general, when I look up something, in order for that something to be in the collection, I need to look it up by an object with the same reference, not an object that is "equal" by "equals()" method.

  • For the apex-team : bug in apex ???

    Hi apex-team, if i make a master-detail report i can choose between a result of two pages (master and detailmaster with mru for the detail) , or a result with three pages (master, detailmaster with a report of detailtabel and a form for the detail-ta