How-to determine objects in the PS Old Generation space

Hi,
I am having issues with my PS Old Generation filling up and never gc'ing its objects. Obviously, I have some references to objects that shouldn't be. I would like to be able to look into the Old Generation heap space and find out what objects are in there to give me a clue as to what objects are hanging around. Does anyone know of such a tool, link references, or code I can hack to take a peek into the areas of the heap? The application is running under 1.5 JVM on a Solaris box.
If have used profilers such as Optimizeit and looked into JConsole using jmx, but I do not see in these tools a facility that will let me know what objects are in what area of the heap space. Perhaps these tools do what I need but I have missed it. If so, let me know that, too. This application is huge so it is not obvious where to begin to look for the leaks.
Thanks for any help you can give.

Thanks for the reply, Daniel.
I did use jmap and the histo option produced some revealing results. I was expecting a breakdown b/n New Gen heap and Old Gen, which jmap didn't reveal, however, after using jmx and JConsole under 1.5 I realized that the New Gen heap is very short lived (2-3 secs), so jmap -histo IS showing the Old Gen space.
FWIW in case others are having issues...
I have since resolved my problem, which was that the default GC collector on the 1.5 64-bit JVM was not ever doing a Full GC, which it is supposed to do at 68% of the Old Gen heap space, and the Old Gen space would just keep filling up until it hit capacity and choked itself out. I have since changed to using the Concurrent Mark Sweep collector for Old Gen cleanup and the ParNew for New Gen and the app is working great. The GC cleans up when it's supposed to and JConsole reveals that the application never did have leaks. The problem was in the JVM all along. Not sure if there is a bug reported on this anywhere, but it was definitely the issue.
Caveat: After changing collectors I ran jmap against the instance and it locked up on me and required a restart, so instead I enabled remote monitoring and used JConsole, which ended up being a blessing.
JConsole/jmx is a great improvement to the platform and was instrumental in figuring out this issue. My only wish list now, is if JConsole could display an instance count on the classes page. This would give one an idea where one could improve the application from an object creation/heap usage standpoint and it would also provide clues as to where an application might be having issues, if there are an unexpected high number of instances of a certain class. This would especially be handy right after a full GC has been completed.
For an idea of sizing for those interested, this app has around 30 - 45 concurrent, 600 - 1100 simultaneous (60 minute window) users. 10,000+ logins/day and runs on a 4-CPU, 8GB Sun Fire V440 Server. 3GB was allocated to the JVM before the fix and it crashed 2x/day. Now I have reduced the heap footprint to 2GB, which does a full GC every 30-40 minutes and doesn't crash.
thanks again,
Kevin

Similar Messages

  • How to determine or verify the language used if your application is in mult

    hi,
    How to determine or verify the language used if your application is in multi Language Env.
    Thanks & Regards

    Hi again;
    I suggest also see below link which we discussed before here
    Find languages installed in my R12 instance ?
    Regard
    Helios

  • How can I turn off the transition effect in Spaces?  - It's making me sick!

    How can I turn off the transition effect in Spaces?
    Can I do this through the terminal somehow?
    I have three monitors and the transition effect is giving me motion sickness.

    Hi,
    I'm afraid there does not appear to be anyway of turning off the sliding transition in spaces. There's no option to turn it off or to change it to another effect.
    I use spaces all the time as I have a 15" MacBook Pro and it's incredibly useful to have a screen dedicated to e-mail and IM and another for Safari and two other screens for applications. There's just not enough screen real estate for all those windows. I think Spaces is one of the most useful user features of Mac OS X.
    Maybe we should send in a feature request to Apple? I used to use some third party software to do the same before Spaces was released and it had a selection of transitions or none at all.
    Personally, I'm now used to the transitions but as I don't have multiple monitors perhaps I'm being spared the motion sickness!
    Good luck.
    Andy E

  • How to align object in the report layout

    Hello,
    I find it very difficult to aligin objects in the report editor or in the template editor. I know there are some alignment options, like aligning to the grid or aligning a group of objects, but they seem to work on the bounding rectangle for the object. For my text objects, those rectangles are arbitrarily sized. So aligning those rectangles does not correctly align the text baseline, for example.
    Does anyone have a tip on how you can align objects? I there maybe a way to alter the size of objects by changing a number in a property sheet somewhere?
    Regards,
    Frans

    The problems I am having now occur when I am editing the margin in the template editor. For some reason, the flex and confine options can not be turned off in the template editor. I believe they are turned on in this mode, at least in tools:options: paper layout they are turned on. But anyway, this really does not matter because I don't have nested objects in the margin. The objects that will go flying off are completely unrelated to the object I want to move or resize.
    Update: I have just tried editing the layout of a report that was based on the template I am working on. Turning flex off there had a positive effect. It seems indeed the 'flex' setting is to blame for the problems I am experiencing. Thanks for the tip!
    So now I would really like to know how to turn of flex in the template editor..

  • How to passing object to the applet?

    Dear All,
    My project is needed to read the xml file (include the form content) and then parse the xml file to create the related object, so using the applet to display this dynamic form.
    Due to cannot directly open the file object and the applet, the following is my idea:
    1. ) In the servlet, first to new the fileinputstream object , then pass the object into the applet. But this idea is not allowed.
    Only String value can use the param to to pass the parameter value to the applet using <param name = \"cis_auditID\" value = \""+inputsource+"\">.
    2. ) Firstly , read the file and then create specific object before call applet class. I know some people said that using the URLConnection, but i don't know for this. Can only one give more detail description about that.
    So how can i pass the fileinputstream or the own created object into the applet?
    Urgent! Please help!

    Where is the xml file located??
    If it's on the same server that serves the applet or if it's dynamically generated
    by making a http request to a servlet you should use URL and URLConnection.
    URL u = new URL(this.getCodeBase(),"../relativeDir/xmlFile.xml");
    URLConnection uc = u.openConnection();
    InputStream = uc.getInputStream();
    // read the rest of the struff.
    You might want to take a look at this example if you want to send (POST data) to
    the server when you make a http request to a servlet:
    http://forums.java.sun.com/thread.jspa?threadID=645830&tstart=0
    3rd post

  • How to desactivate PSE without the 2 old computers?

    Hi,
    I want to install PSE 9 on my new computer but the licence has been used twice on the olds ones.
    How to desactivate PSE on the old computers as I can not access to them?
    Thank you
    Dominique

    You need to contact Adobe support
    http://www.adobe.com/support/download-install/supportinfo/

  • How we determine publisher take the role for call processing?

    dear sir,
    I've an iptel environment with only 1 publisher and subscriber . I was told that the current device that handling all the call processing is the only subscriber but will be backup by publisher for call processing in case of subscriber down. How we determine that? which part of ccm we should look into?
    please advise.

    Charles:
    Check your CCM group (under System) to see if your cluster is configured for sub as call processing engine and pub as backup. The order matters - top of the list is the main call processing engine, primary backup next, secondary backup next.
    The routers should also contain the pub and sub in your dhcp pool option 150 statement and the pub in the ccm-manager redundant host statement.
    Hope that helps.
    Tom

  • How to access objects in the Child Form from Parent form.

    I have a requirement in which I have to first open a Child Form from a Parent Form. Then I want to access objects in the Child Form from Parent form. For example, I want to insert a record into a block present in Child Form by executing statements from a trigger present in Parent Form.
    I cannot use object groups since I cannot write code into Child Form to first create object groups into Child Form.
    I have tried to achieved it using the following (working of my testcase) :
    1) Created two new Forms TESTFORM1.fmb (parent) and TESTFORM2.fmb (child).
    2) Created a block named BLK1 manually in TESTFORM1.
    3) Created two items in BLK1:
    1.PJC1 which is a text item.
    2.OPEN which is a push button.
    4) Created a new block using data block wizard for a table EMPLOYEE_S1. Created items corresponding to all columns present in EMPLOYEE_S1 table.
    5) In WHEN-NEW-FORM-INSTANCE trigger of TESTFORM1 set the first navigation block to BLK1. In BLK1 first navigable item is PJC1.
    6) In WHEN-NEW-ITEM-INSTANCE of PJC1, code has been written to automatically execute the WHEN-BUTTON-PRESSED trigger for the "Open" button.
    7) In WHEN-BUTTON-PRESSED trigger of OPEN item, TESTFORM2 is opened using the following statement :
    open_form(‘TESTFORM2',no_activate,no_session,SHARE_LIBRARY_DATA);
    Since its NO_ACTIVATE, the code flows without giving handle to TESTFORM2.
    8) After invoking OPEN_FORM, a GO_FORM(‘TESTFORM2’) is now called to set the focus to TESTFORM2
    PROBLEM AT HAND
    ===============
    After Step 8, I notice that it passes the focus to TESTFORM2, and statements after go_form (in Parent Form trigger) doesnot executes.
    I need go_form with no_activate, similar to open_form.
    Edited by: harishgupt on Oct 12, 2008 11:32 PM

    isn't it easier to find a solution without a second form? If you have a second window, then you can navigate and code whatever you want.
    If you must use a second form, then you can handle this with WHEN-WINDOW-ACTIVATED and meta-data, which you have to store in global variables... ( I can give you hints if the one-form-solution is no option for you )

  • How to view objects off the canvas?

    is there a way to see the objects that are off the black center canvas, that are sitting on the gray "artboard" (like one can see in indesign or illustrator)? i'm working with objects that start off the canvas and then follow motion paths onto the canvas, but although i can select them, i can't see them until they hit the canvas proper. i'm new to motion and can't find the answer to this question anywhere, or maybe i'm looking at this the wrong way...??
    thanks!

    You can't see the object off the canvas, but you should be able to see it's bounding box - if you can't see it, check under the View button at the top right of the Canvas - make sure Lines and Handles both have checkmarks.

  • How to determine which cell the user has just left?

    I want to check the contents of a JTable cell just after the user has left that cell.
    What is the most reliable way to determine which cell the user has just left?

    Hi,
    I use the cellRenderer for that... if the value is not correct, I call an editCellAt() method...
    JRG

  • How to determine what's using data store temp space?

    How can one determine what's using data store temp space? We are interested to know what structures are occupying space in temp space and if possible what pid/process connected to TimesTen created them.
    Also, is there a procedure that will work if temp space is full?
    Recently one of our data stores ran of space. We we're unable to run commands like "monitor", "select * from monitor", "select count(*) from my_application_table", etc. These commands failed because they required temp space to run and temp space was full. We killed the application processes, this in turned freed up temp space, then we were able to run these queries.
    Ideally, we'd like to have a procedure to figure out what's using temp space when temp space is full.
    The other thing we could do is periodically monitor temp space prior to it filling to determine what's using temp space.

    That was my original thought, but once you click the slider track or thumb, and then enter a value in the text control, the clickTarget on the change event envoked by the change to the bound data (after entering a value in the text control) will be whatever slider element had last been clicked. If you've never clicked the slider, clickTarget=null. But once you've clicked the slider the clickTarget always has a value of "thumb" or "track", regardless of what triggered the change event.

  • How to determine which of the Oracle security products have been installed

    Hello!
    I would like to determine whether or not the Oracle security products have been installed for an Oracle database.
    The Oracle security products are:
    * Oracle Database Vault
    * Oracle Audit Vault
    * Oracle Configuration Management
    * Oracle Total Recall
    * Oracle Advanced Security
    * Oracle Data Masking
    * Oracle Label Security
    * Oracle Secure Backup
    * Oracle Database Firewall
    So what I thought is to look at the "DBA_REGISTRY" table which displays information about the components loaded into the database.
    But on the other hand there also is the "V$OPTION" view which lists database options and features.
    Does anybody know, how I could correctly determine whether or not each of the product is installed?
    I guess for "Oracle Database Vault" I should query V$OPTION, but what should I do with the other ones? And in case DBA_REGISTRY would be the right table, how would the comp_ids look like for the products?
    SELECT 'Oracle Database Vault' , nvl( (SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault'),'FALSE') FROM sys.dual
    OR
    SELECT 'Oracle Database Vault' , nvl2( (SELECT 'valueFound' FROM DBA_REGISTRY WHERE comp_id = '??????' AND status NOT IN ('INVALID', 'REMOVING' , 'REMOVED')),'TRUE','FALSE') FROM sys.dual
    Thanks in advance
    Kai

    Hi kai;
    There are some script avaliable on net, first please check them and run it on test server first!
    http://www.google.com.tr/#hl=tr&biw=1259&bih=793&q=installed%2Bproducts%2Boracle&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=71a534c4a5161590
    Secondly you can check oraInventory and also oratab file or you can run runInstaller and can check Installed product tab on installation screen
    Regard
    Helios

  • How to determine who performed the last full database dump before cumulative dump

    Hello,
    ASE 15.7 SP100 allows cumulative backups, and if cumulative dump is tried before a full dump, ASE shows this error:
    You cannot execute an incremental dump before a full database dump.
    From my experiments, it seems that it does not matter how the full dump is performed (by native isql, or by a 3rd party API). As long as a full dump is done on a database, ASE seems to be keeping track of all the changed pages since the last full dump. So this means that you can perform a full dump using a 3rd party API, and then on isql, if you run a cumulative dump command, the cumulative dump succeeds, which is based on the last full dump by another library!
    So, my question is: is there any way to programmatically determine how (by native isql or 3rd party) the last full backup was performed? I believe $SYBASE_HOME/ASE-15_0/dumphist contains this info, but it requires 'enable dump history' to be set first, and I am looking for a solution which does not involve checking a disk file.
    Thanks,
    Ali

    Dear Mr Razib,
    I have not explored the feature but ASE autiding might provide you the possibility to access information on past database dumps via SQL.
    Apart from that - I am not aware of an SQL interface to the dumphist file (would be nice to have, I agree)
    Enabling dump history is definitley highly recommended  (in my opinion) .
    There is yet another feature which might help you to prevent an DBA from dumping databases and transactions to various locations.
    When you create a DUMP CONFIGURATION and additionally set parameter
            enforce dump configuration
    ASE will prevent normal (free style) DUMP commands but enforce the use of an existing dump configuration. The mechanism is not fool proof (nothing prevents from creating yet another dump configuration on the fly) - but at least something.
    With kind regards
    Tilman Model-Bosch

  • How to Determine price in the Profarma invoice for  stock transfer delivery

    Dear Gurus,
    I have a scenario of interplant stock transfer means stock transfer between two plants of same company code.
    therefore we create purchase order for the stock transfer then we do the delivery of this purchase order in VL10B.
    Now as per the requirement we want a profarma invoice with reference of this delivery so we are able to make the profarma invoice also for this delivery but the net value of the materials is appearing Zero where i want the net price visible in this profarma anyhow.
    I am using standard F8 profarma invoice for this scenario and the delivery type NL (Item Catg-NLN).
    Please tell me how can I deterimne the price of the material in profarma invoice with reference of stock transfer delivery.
    regards,
    Sanjay.

    Hai
    In case of STO u have to check the pricing procedure of supplying plant ( plant as internal customer for supplying and receiving plant)at customer master data ,check the pricing procedure assigned,and then check at OVKK for the pricing procedure determination, and then maintain the  conditiontype through VK11 for pricing, and then check the copy controls from delivery to billing document( NL TO  F8 ) for pricing at item level and also check if any condition type has been maintained from the MM purchase order that has been taken as reference condition type to SD for pricing,inthis case the system will automatically pick the price that has maintianed from the Purchase order to SD Billing.
    I hope it will work to your scenario.
    Kalyan

  • How to query objects intersecting the coordinates

    Hi all,
    I am an Oracle Spatial Newbie. I made a search on the Google but could not find a simple answer for a simple question. I migrated my database from PostGIS to Oracle. I would like to learn the Oracle version of my PostGIS query:
    SELECT * from ykn WHERE ST_Intersects(poly, ST_MakeEnvelope(30.0, 37.792 , 30.1, 37.8,900914));
    All my records are converted to Oracle geometry type using a conversion tool. And also the R-tree index is added. I also would like to know how to query if the query has to be different to use the index.
    I'll be glad if you could help.
    Kindest Regards
    telmessos

    telmessos,
    By the way, what is the A here? I thought it is the table name and replaced A with YKN but got the same message."A" is an alias for the table YKN. You HAVE to use an alias whenever dereferencing the fields of any Oracle object. SDO_GEOMETRY
    is an Oracle object and sdo_srid is a field of that object so, to access its value you have to use an alias.
    Now, the original query - assuming the table sdo_geometry column is called POLY - didn't have an alias which would be confusing:
    select a.poly.sdo_srid from ykn where rownum < 2;
    -- Result
    ORA-00904 - "A"."POLY"."SRO_SRID": invalid identifier.What is missing here is the alias a after the table name YKN as in the following:
    select a.poly.sdo_srid from ykn a where rownum < 2;So, what we have is a rule
    Whenever accessing the fields / methods of an SDO_GEOMETRY we must:
    +1. Alias the table+
    +2. Use the alias when accessing column methods or fields eg <alias>.<column>.<field/method>+
    An example:
    select a.geom.sdo_gtype, a.geom.sdo_srid, a.geom.sdo_point.x, a.geom.sdo_point.y, a.geom.get_WKT() as wkt
      from projpoint2d a
    where rownum < 3;
    -- Results
    GEOM.SDO_GTYPE GEOM.SDO_SRID GEOM.SDO_POINT.X GEOM.SDO_POINT.Y WKT
    2001           NULL          363088.42        5405618          POINT (363088.42 5405618.0)
    2001           NULL          363202.85        5407375.46       POINT (363202.85 5407375.46)Note: All column above are fields of sdo_geometry except get_WKT() which is a method of sdo_geometry but still needs an alias to execute.
    HTH
    regards
    Simon

Maybe you are looking for