Memory Leak in NonPaged pool --- Tag = Cont

Hi All,
        We are facing memory leak issue on some of our some servers in similar fashion. Leak in Nonpaged pool and as per Poolmon - Tag CONT is consuming most memory. As per Pooltag,
Cont - <unknown>    - Contiguous physical memory allocations for device drivers
Systems State is shown below:
Zoom IN to view ScreenShot clearly
Now i tried to collect details of allocations using WinDBG (!poolfind Cont) tagged with Cont string, but WINDBG gets stuck when it trying to collect data from NonPaged pool, as shown below:
Zoom IN to view ScreenShot clearly
Kernel Memory Dump from one of System can be found
HERE (315 Megs)!
Any help here ?
OS ... VirTuaLiZaTioN ... MaxiMuS ... Fair, Good, Better, Best

Hi,
I would envolve another engineer to this topic.
Thanks for your understanding.
Roger Lu
TechNet Community Support

Similar Messages

  • What about the memory leak Bug in foreach tag

    Hi,
    does anybody knows if this bug is resolved already ?
    http://issues.apache.org/bugzilla/show_bug.cgi?id=25623.
    I see memory leaks in our application, and deeper check with YourKit profiler show that the objects retained in the jstl tags?
    Any help?

    Thanks for the info.
    The bug is in 'WONT FIX' status which is a shame.
    ram.

  • Z77 G45 Gaming - Memory leak (Non-paged pool)

    Good day MSI forum.
    I recently bought this motherboard of yours, and it's working great. As the title says, I am having a memory leak of some sort. I've been doing all kinds of googeling, using poolmon trying to locate the error and so on, but I am not educated enough in this area to know what I am really doing!
    What me and my frined managed to find out so far:
    1. When I download something, or when I upload youtube with max pixels (more upload then), the non-paged pool meter just rises as if he was to climb the mount everest!
    2. When I disabeled the Killer 2200 driver, (killed the EXE file in my task manager) the memory started to leak A LOT slower.
    3. Over the course of 24 hours with no downloading, just youtube music streaming and online games being ran, it can leak up to 1000mb. (While downloading it does 1000mb in 1 hour). It was basically the same speed of my download - 1MB downloaded > 1 MB leaked - so in conclusion it has to do with the network (and here's the problem, I don't know what might cause this).
    Now I am not completely sure that the driver/download is what is causing the memory leak, it might be something that I don't know of. I am not a pro in this matter, so I ask of help!
    Thank you in advance,
    Orlaw.

    Hi,
    Please check the following article for troubleshooting:
    http://support.microsoft.com/kb/q177415/en-us
    Regards.
    Vivian Wang

  • Memory leak using repeater tag

    Hi,
    I am trying to show a report that has 33113 rows using a repeater tag, but i get the following error: "An error has occurred: java.lang.OutOfMemoryError".
    I am using the pageFlow to bind a ArrayList that already contains the rows.
    Any ideas?
    Thanks a lot.

    Link to Microsoft Connect issue
    https://connect.microsoft.com/VisualStudio/feedback/details/1045459/memory-leak-using-windows-accessibility-tools-microsoft-narrator-windows-speech-recognition-with-net-applications
    Link to Microsoft Community post
    http://answers.microsoft.com/en-us/windows/forum/windows_7-performance/memory-leak-using-windows-accessibility-tools/8b32a81c-f828-415c-aec8-34e3106f9cb0?tm=1420469245606

  • Allocated memory pool was not deleted! 1 GB memory leak is too much for me!

    Dear Sirs. I found that DB environment, that was configured to use 1 GB cache size, won't free it when closed! Why? First I tried to open and close environment and got the following:
    Detected memory leaks!
    Dumping objects ->
    {596} normal block at 0x01970040, 1048596 bytes long.
    Data: < > 14 00 10 00 DB DB DB DB 0B 00 10 00 01 00 00 00
    {578} normal block at 0x00397978, 464 bytes long.
    Data: < > D0 01 00 00 DB DB DB DB C7 01 00 00 01 00 00 00
    Object dump complete.
    I have and idea that BDB will reuse the memory, rite? OK, let's try to create the same environment and open it. After environment was opened, closed, opened again and again closed, I got the following:
    Detected memory leaks!
    Dumping objects ->
    {3663} normal block at 0x01B80040, 1048596 bytes long.
    Data: < > 14 00 10 00 DB DB DB DB 0B 00 10 00 01 00 00 00
    {3645} normal block at 0x00396E60, 464 bytes long.
    Data: < > D0 01 00 00 DB DB DB DB C7 01 00 00 01 00 00 00
    {596} normal block at 0x01970040, 1048596 bytes long.
    Data: < > 14 00 10 00 DB DB DB DB 0B 00 10 00 01 00 00 00
    {578} normal block at 0x00397978, 464 bytes long.
    Data: < > D0 01 00 00 DB DB DB DB C7 01 00 00 01 00 00 00
    Object dump complete.
    So memory was not reused, nor deallocated.
    By the way, you may be interested in other leak I found, but fixed, see
    Replication manager memory leak when setting local site information.
    This leak is more serious, I am not sure I will fix it quickly. Maybe I'm doing something wrong? Could you please suggest something?
    Thanks in advance!
    With regards,
    Vladislav.

    OK, the problem solved by fixing code in file 'log.c', method '__log_dbenv_refresh'.
    Just added the code that deallocates memory of bulk buffer.
    if (IS_ENV_REPLICATED(dbenv))
    if (lp->bulk_buf != INVALID_ROFF)
    __db_shalloc_free(&dblp->reginfo, lp->bulk_buf);
    lp->bulk_buf = INVALID_ROFF;
    lp->bulk_len = 0;
    lp->bulk_off = 0;
    It was allocated in the '__log_open' function, by the following code:
              lp->ready_lsn = lp->lsn;
              if (IS_ENV_REPLICATED(dbenv)) {
                   if ((ret = __db_shalloc(&dblp->reginfo, MEGABYTE, 0,
                   &bulk)) != 0)
                        goto err;
                   lp->bulk_buf = R_OFFSET(&dblp->reginfo, bulk);
                   lp->bulk_len = MEGABYTE;
                   lp->bulk_off = 0;
              } else {
                   lp->bulk_buf = INVALID_ROFF;
                   lp->bulk_len = 0;
                   lp->bulk_off = 0;
    Sorry for time taken to read my posts, I was really needy in quick help, but solved problems myself.

  • Memory leak in Promise S/W?

    We have 2 systems running with a KT4U MB. Both systems use 2 SATA disks in mirror (RAID-0), W2K Pro. Approx. once a week both systems lockup en have te be rebooted. After rebooting the eventlog shows event 2019 (possible memory leak). I've found out that the msgagt.exe service (Promise Message Agent) is the most probable cause of this. I this service is stopped, then the pool nonpaged memory is stable, when the service is running, the pool keeps increasing. The version of msgagt.exe is 3.2.0.2. There should be a newer version on the MSI site, bit this one only contains the Promise driver'.
    Anyone has any suggestions?

    Well off hand with out seeing any code, check that you are not instantiating any object repeatedly...
    (creating new objects over and over and never getting rid of the old ones by still keeping referenced to it)
    something like this...
    public class MemoryEater
       MemoryEater()
          MemoryEater eater = new MemoryEater();
    public void doSomeThing()
       MemoryEater eater = new MemoryEater();
       eater.doSomeThing();
    }now this is a exaggerated example, but it might help you locate your memory leak...
    and memory usage varies depending on application and OS states... 1mb is not much of a rise, but then again overtime it makes a difference... Try other applets and see if you get the same results... I am currently running the same applet, and for a short bit the usage steadily climbed maybe about 2mb overall but then started to level off...
    Running the same applet, I got the initial memory usage increase,
    then a slow steady climb for about another meg and now it fluctuates between 36.5 and 37.5 mb...
    Note: I also have other Internet Explorer windows open, so naturally my overall memory usage is going to be higher...
    If it is still a problem, you can try re-installing the JVM...
    I hope this was helpful...
    - MaxxDmg...
    - ' He who never sleeps... '

  • T61 with memory leak on XP for driver battc.sys

    Hi
    I have an issue with XP where the battc.sys module that is part of Windows XP and responsible for the kernel side of monitoring the battery status. This module continually leaks memory until I have no more kernel paged resources left and programs start to fail on my laptop.
    I raised a support case for this with Microsoft and after some investigation and upgrading to the latest T61 power drivers that were released a few days ago on the Lenovo site, MS support told me it is a fault of the T61 and that I would need to disable Microsoft APCI support to stop this memory leak from occuring and to take the issue up with Lenovo.
    I have used the verifier tool to confirm that it is the Windows XP SP3 battc.sys memory module leaking.
    I am running the latest T61 drivers and fully patch with MS drivers on SP3.
    As MS have told me it is the fault of the T61 I am posting this issue here.
    Thanks
    Stephen

    It is memory available to the kernelwhich itself does not show under a process in task manager as far as I am aware (unles it is taken account as part of the system process).
    The best way to measure the available kernel memory space available is by using sysinternals procexp.
    You need to download procexp and also install the windows debugging tools from Microsoft. Then in procexp set the "Options > Configure Symbols : Debughlp.dll path" to the new debughlp.dll installed with your debu tools and set the symbols path to srv*c:\Symbols*http://msdl.microsoft.com/download/symbols
    Then you can choose in procexp "View > System Information" and see the used and total paged and non-paged kernel memory space.
    poolmon helps monitor all the symbols that are taking up this memory and verifier lets you drill down to the exact module and the changes in memory for a module that is occuring.
    Here are two really good links on it
    http://blogs.msdn.com/ntdebugging/archive/2006/12/18/Understanding-Pool-Consumption-and-Event-ID_3A0...
    http://blogs.msdn.com/ntdebugging/archive/2008/05/08/tracking-down-mmst-paged-pool-usage.aspx
    In my poolmon i notice that Mmst and battc are taking alot of memory after my computer has been running for some time. Mmst being high is normal but battc should not continually be growing as it is which is why I raised the case to MS but they want verification it is not a Lenovo issue.

  • Memory leak in "Tenured Generation" heap (JVM 1.5)?!

    For about over a year, I'm trying to hunt down the memory leak in our server application. But after all the improvements I've made (especially with 'forgotten' listeners that didn't exist anymore), I'm confident that the application doesn't have a memory leak anymore. At least the new "jconsole.exe" tool of JDK 1.5 shows me a very intersting behaviour:
    Even if the server app is doing nothing than one thread polling a database table for possible new jobs to process, the memory slightly increases over time ... very slightly. It's just like the screenshot at
    http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html#memory
    where you might find a very slight tendency up. I run jconsole the whole day to track the application on a computer where no jobs got processed, so the application only sit there there whole day and just one thread has a loop that polls a database table via JDBC and doesn't get a result. The result is, that the memory chart is like the chart in the screenshot of the link above just with much more jaggies. About every 20 minutes, garbage collection seems to kick in, as the jaggie line drops about several megabytes just to increase again slowly.
    Of course the thread loop creates objects but it doesn't hold any (debugged it several times and it is quite easy code). So this behaviour makes sense. But it doesn't make sense that the memory usage overall slowly increases over many hours (ultimativaly leading to an OutOfmemoryError).
    So far, I still thought, it must be a memory leak in my application. But then, I played with jConsole and noticed this: if I just display the Memory Pool "Eden Space", the jagged line always drops down to the same level, i.e. no memroy leak. The "Survivor Space" is also constant in average (no memory leak). But the "Tenured Generation" line shows this memroy leak behaviour (slowly increases). This space is described as:
    Tenured Generation (heap): pool containing objects that have existed for some time in the survivor space.
    So, I'm not so sure anymore if this memory must be in my application. Unfortunately, jConsole doesn't show some kind of object tree that can be browsed and I would see what kind of object (collection) increase.
    I tried profiling my application, but the profiled app runs so slowly that it would need many days or weeks until it's possible to identify some bad objects.
    Is there another way to identify such memory waisters?

    Write a main() that does the polling in a tight loop 1000 times. Then System.gc(); Thread.sleep(1000); System.exit(). Run the thing with -Xrunhprof. Observe the "live bytes" and "live objs" columns in the generated java.hprof.txt file. Anything that strikes as suspicious? If every polling round leaks one object, there's likely to be 1000 (or N*1000) of something live. Make sure the leak is in the polling routine by running it 1,000,000 rounds and getting an OutOfMemory.

  • Memory leak in external interface SetReturnValue?

    I'm having trouble with a memory leak in my application. I'm
    hoping someone out there can help me find a fix or workaround, or
    tell me what I'm doing wrong.
    The leak seems to be coming from the flash external
    interface; specifically, IShockwaveFlash.SetReturnValue(String). My
    application is written in Visual Basic 2008, connecting to Flash
    9.0.124.0 (activex version).
    I've written a fairly simple flash/VB program pair to
    illustrate the problem.
    The SWF contains a button, 2 dynamic text fields, and the
    ActionScript 2 code below.
    The VB project contains a Form with a AxShockwaveFlash object
    and the VB code below.
    When this program is run, and the button is clicked a lot
    (10's of thousands of times), the application's memory creeps up
    and never seems to fall back down. If the string passed to
    SetReturnValue is longer, memory is consumed faster. But if the
    call to SetReturnValue is commented-out, the application's memory
    usage remains stable.
    If anyone has any suggestions on how to proceed, I'd be
    grateful.
    (By the way: I'm using a freeware program called DoItAgain to
    automate the button pressing.)

    I have developed two simple Java and corresponding
    C++ classes. Use code tags when you post your code.
    You are missing a lot of error checking. JNI calls, every single one, will usually be followed by some sort of error checking. Any that access classes, methods, fields or allocate object must be followed by checks for java exceptions.
    You will need to reduce your code to a smaller sample. Otherwise it is unlikely anyone will look at it.
    You also need to specify how you know that a memory leak is occurring.

  • Memory leak in oracle.exe and mds.exe

    We are facing Memory leak in oue MDM server. Our environment details
    are as follows;
    MDM 5.5 SP5 ( Build 5.5.41.70)
    Oracle 10.2 patch 2
    windows server 2003 SP1
    XI 7.0 SP 9
    If server is running continuously 3-4 days then Nonpaged memory is
    getting exausted and server does not respond. Now we have to retart the
    windows server manually.
    If we see the task manager it is shows more than 200,000 handles for
    oracle.exe and more than 100,000 handles for mds.exe.
    1: Oracle.exe -- more than 200000 handles ( Approx >5000 is problem)
    2: Mds.exe -- more than 100000 handles ( Approx >5000 is problem)
    Since these applications are not releasing the handles properly so all
    nonpaged memory gets exausted and server stops responding.
    If we restart the mdm server, database and OracleserviceMDMD, then
    nonpaged memory is released. But some times even if we restart these
    services, we do not get nonpaged memory released. So we have to restart
    the windows server.
    please help me if anyone else have faced the same problem.
    regards
    Saurabh

    Closing as question is answered in MDM forum.

  • What is the best way to deal with memory leak issue in sql server 2008 R2

    What is the best way to deal with memory leak issue in sql server 2008 R2.

    What is the best way to deal with memory leak issue in sql server 2008 R2.
    I have heard of memory leak in OS that too because of some external application or rouge drivers SQL server 2008 R2 if patched to latest SP and CU ( may be if required) does not leaks memory.
    Are you in opinion that since SQL is taking lot of memory and then not releasing it is a memory leak.If so this is not a memory leak but default behavior .You need to set proper value for max server memory in sp_configure to limit buffer pool usage.However
    sql can take more memory from outside buffer pool if linked server ,CLR,extended stored procs XML are heavily utilized
    Any specific issue you are facing
    Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers

  • Possible memory leak in JSF � help needed

    Hi,
    We are developing a JSF application using the following:
    SUN JSF 1.1_02-b08
    Tomahawk 1.1.3
    Tomcat 5.5
    Our application includes pages with lists; these lists are held and extracted from backing beans.
    We are using these beans in request scope with <t:saveState> tag (to avoid holding the lists in the session all the time).
    We tested the application using JProbe and found out that each bean that was used in the saveState was added to the view (to the session) , each time we entered the page , and the bean was not released until the end of the session (instead of only one instance of the backing bean).
    After I found this problem, I added the following context params to the web.xml:
    com.sun.faces.NUMBER_OF_VIEWS_IN_SESSION = 1 (instead of the default 15)
    com.sun.faces.NUMBER_OF_VIEWS_IN_LOGICAL_VIEW_IN_SESSION = 1 (instead of the default 15)
    We tested the application again, and now no unnecessary instances of the beans were held in the session (in the view).
    BUT , now when we use the browser �Back� button, and returning to a page with a list, when selecting an item from the list, no action is performed (the list in the server side does not exist).
    My questions are:
    1)What is the meaning (difference) of each of the context param : NUMBER_OF_VIEWS_IN_SESSION , NUMBER_OF_VIEWS_IN_LOGICAL_VIEW_IN_SESSION
    2)What are the recommended values for these parameters, to minimize session memory, and to enable the usage of the browser �Back� button.
    Thank you all,
    Lior.

    Me too.
    Please somebody knows how can we avoid memory leak problems in JSF 1.1 ?
    Thansk in advanced

  • Out Of Memory Exception with Thread Pool

    Hi,
    I'm using the ThreadPooling, and I have a problem. In my usage, I submit a bunch of tasks to my application, and i have a pool of THREADS, so while executing these tasks i am getting the following errot :
    Exception in thread "pool-1-thread-271" java.lang.OutOfMemoryError: Java heap space
    I am not able to understand, what could be the reason to get this error, please help me
    any one who knows it .

    a few things to consider
    1. increasing the heap size
    2. you could have a memory leak
    3. your app could just be creating too many/large objects and need redesign

  • Memory Leak in Crystal Report XI

    We are using Crystal Reports XI Licensed Developer version for web based application. The generated reports are getting accessed by multiple users from web interface. After continuos access of reports, at some point it reaches the maximum limit of Application pool and it stops the application.
    From number of web forms, we found that crystal reports are not releasing systems memory and it keeps adding extra load on memory after a single report generation or there is memory leak. Below are the code snippets to initialize and dispose of report object.
    a. Initializing a new report obj
    protected ReportDocument _selectedRpt = new ReportDocument();
    b. Disposing obj in page_unload event
    /// <summary>
    /// Page_Unload Event handler.
    /// </summary>
    /// <param name="sender">Sending control or event.</param>
    /// <param name="e">Generic event arguments.</param>
    protected void Page_Unload(object sender, EventArgs e)
         _selectedRpt.Close();
         _selectedRpt.Dispose();
    Temporary Solution:  For its temporary resolution, we are recycling application pool twice a day for smooth processing of reports, but recycling also destroying application session.
    Please suggest a solution, which can help to run crystal reports correctly without any memory leak.

    Helena, CR XI R2 is not supported in .NET 2008. See [this|https://wiki.sdn.sap.com/wiki/display/BOBJ/WhichCrystalReportsassemblyversionsaresupportedinwhichversionsofVisualStudio+.NET] wiki for more details.
    Re. your unanswered post. Can you provide a link? I search for unanswered posts, but do not see one from you.
    Remember that this is a community forum only, not support as such. If this is an important issue and you wish to discuss it with technical support, you can create a phone case here:
    http://store.businessobjects.com/store/bobjamer/DisplayProductByTypePage&parentCategoryID=&categoryID=11522300
    Ludek

  • Memory leak in Callable Statement

    We are using Weblogic 6.1 and Oracle 8.1.7 for an application we are developing.
    Usage of callable statement seems to be resulting an a memory leak. The program runs
    in a loop and after processing 200 records, java.lang.outofMemory Exception is thrown
    We are unable to figure out a reason for the same.
    The code snippet is as below
    try
    //dbConn = ImportPODBConnect.getDBConnection(dsJNDIName, dsURL); //connect
    to DB <br>
    dbConn = DBConnect.getDBConnection(dsJNDIName, dsURL);
    //query = POQueries.selectPO(poId); //get the required
    query statement from the POQueries utility class
                             Print.log(" in getPO() ----> ********* before 1st stmt " + System.currentTimeMillis());
                        cstmt = dbConn.prepareCall("{ ? = call PO_HEADER_PROC(?)}");
                        cstmt.registerOutParameter(1, OracleTypes.CURSOR);
                   cstmt.setFloat(2, poId);
                   // execute and retrieve the result set
                   cstmt.execute();
                   getPORs = (ResultSet)cstmt.getObject(1);
                             Print.log(" in getPO() ----> ********* after 1st stmt " + System.currentTimeMillis());
                             if (!getPORs.next()) //if nothing returned then
    throw an exception
                                  Print.log("Unable to get the required PO:" + poId);
                                  throw new Exception("Unable to get the required PO:" + poId);
                             else //set all the variables
    of the PO header objects from the result set
                                  pohSl = new POHeaderSl();
                                  pohSl.setOvUserName(getPORs.getString("OVA_USER_NAME"));
                                  pohSl.setOvCompanyName(getPORs.getString("OVA_COMPANY_NAME"));
                                  pohSl.setAgent(getPORs.getString("AGENT"));
                                  pohSl.setApprovalCode(getPORs.getString("APPROVAL_CODE"));
                                  pohSl.setBrand(getPORs.getString("BRAND"));
                                  pohSl.setBusinessSegment(getPORs.getString("BUSINESS_SEGMENT"));
                                  pohSl.setBusinessSubSegment(getPORs.getString("BUSINESS_SUB_SEGMENT"));
                                  pohSl.setBuyDate(getPORs.getString("BUY_DATE"));
                                  pohSl.setCareContentLabel(getPORs.getString("CARE_CONTENT_LABEL"));
                                  pohSl.setCartonMarkings1(getPORs.getString("CARTON_MARKINGS_1"));
                                  pohSl.setCartonMarkings2(getPORs.getString("CARTON_MARKINGS_2"));
                                  pohSl.setCartonMarkings3(getPORs.getString("CARTON_MARKINGS_3"));
                                  pohSl.setCartonMarkings4(getPORs.getString("CARTON_MARKINGS_4"));
                                  pohSl.setComments(getPORs.getString("COMMENTS"));
                                  pohSl.setCommissionPerUnit(getPORs.getString("COMMISSION_PER_UNIT"));
                                  pohSl.setCompanyId(getPORs.getString("COMPANY_ID"));
                                  pohSl.setCompulsoryString(getPORs.getString("COMPULSORY_STRING"));
                                  pohSl.setConTimestamp(getPORs.getString("CON_TIMESTAMP"));
                                  pohSl.setCurrency(getPORs.getString("CURRENCY"));
                                  pohSl.setCustomerBillToNumber(getPORs.getString("CUSTOMER_BILL_TO_NUMBER"));
                                  pohSl.setCustomerLcBank(getPORs.getString("CUSTOMER_LC_BANK"));;
                                  pohSl.setCustomerLcDate(getPORs.getString("CUSTOMER_LC_DATE"));
                                  pohSl.setCustomerLcExpiryDate(getPORs.getString("CUSTOMER_LC_EXPIRY_DATE"));
                                  pohSl.setCustomerLcNumber(getPORs.getString("CUSTOMER_LC_NUMBER"));
                                  pohSl.setCustomerPoNumber(getPORs.getString("CUSTOMER_PO_NUMBER"));
                                  pohSl.setCustomerSaleDept(getPORs.getString("CUSTOMER_SALE_DEPT"));
                                  pohSl.setCustomerShipToNumber(getPORs.getString("CUSTOMER_SHIP_TO_NUMBER"));
                                  pohSl.setCustomerSo(getPORs.getString("CUSTOMER_SO"));
                                  pohSl.setDateLastModifiedErp(getPORs.getString("DATE_LAST_MODIFIED_ERP"));
                                  pohSl.setDateLastModifiedOv(getPORs.getString("DATE_LAST_MODIFIED_OV"));
                                  pohSl.setDateOfActivation(getPORs.getString("DATE_OF_ACTIVATION"));
                                  Print.log(" ******** inside getPO() ----- > ****** built Header" + System.currentTimeMillis()
                                  if(getPORs != null)
                                       getPORs.close();
                                       getPORs = null;
                                  if(cstmt != null)
                                       Print.log("In the close");
                                       cstmt.close();
                                       cstmt = null;
                        catch (Exception e)
                             System.out.println(" in dataAccess.getPO() ----- > " + e.toString());
                             throw new Exception(e.toString()); //if there are any exceptions
    then throw back the exceptions
                        finally //finally block to release any connections
    and statement objects
                             if(getPORs != null)
                                  getPORs.close();
                                  getPORs = null;
                             if (pstmt!=null)
                                  pstmt.close();
                                  pstmt = null;
                             if (cstmt!=null)
                                  cstmt.close();
                                  cstmt = null;
                             if (dbConn!=null)
                                  dbConn.close();
                                  dbConn = null;
                        return poSl; //return the PO object
    Can anyone help with this?

    hi
    This may happen when you open resultset objects and not close them properly.
    Try to ensure that, you should close the objects in individual try catch
    blocks so that one failure will not cause other close's to be skipped.
    You can try one more thing, I don't see you are using any LONG/ LONG
    RAW/BLOB/CLOB columns from your code here. If the table which you are trying
    to retrieve data from has this type of data you will benefit from using some
    tuning parameters here and may be able to avoid out of memory exceptions,
    take a look at the url,
    http://e-docs.bea.com/wls/docs61/oracle/advanced.html#1158561
    especially, try using,
    weblobic.oci.selectBlobChunkSize and set it to something low. you can set
    these properties on the connection pool.
    sree
    "Murali" <[email protected]> wrote in message
    news:[email protected]...
    >
    >
    We are using Weblogic 6.1 and Oracle 8.1.7 for an application we aredeveloping.
    Usage of callable statement seems to be resulting an a memory leak. Theprogram runs
    in a loop and after processing 200 records, java.lang.outofMemoryException is thrown
    >
    We are unable to figure out a reason for the same.
    The code snippet is as below
    try
    //dbConn = ImportPODBConnect.getDBConnection(dsJNDIName, dsURL);//connect
    to DB <br>
    dbConn = DBConnect.getDBConnection(dsJNDIName, dsURL);
    //query = POQueries.selectPO(poId); //getthe required
    query statement from the POQueries utility class
    Print.log(" in getPO() ----> ********* before 1st stmt " +System.currentTimeMillis());
    >
    cstmt = dbConn.prepareCall("{ ? = call PO_HEADER_PROC(?)}");
    cstmt.registerOutParameter(1, OracleTypes.CURSOR);
    cstmt.setFloat(2, poId);
    // execute and retrieve the result set
    cstmt.execute();
    getPORs = (ResultSet)cstmt.getObject(1);
    Print.log(" in getPO() ----> ********* after 1st stmt " +System.currentTimeMillis());
    >
    if (!getPORs.next()) //if nothing returnedthen
    throw an exception
    Print.log("Unable to get the required PO:" + poId);
    throw new Exception("Unable to get the required PO:" + poId);
    else //set all thevariables
    of the PO header objects from the result set
    pohSl = new POHeaderSl();
    pohSl.setOvUserName(getPORs.getString("OVA_USER_NAME"));
    pohSl.setOvCompanyName(getPORs.getString("OVA_COMPANY_NAME"));
    pohSl.setAgent(getPORs.getString("AGENT"));
    pohSl.setApprovalCode(getPORs.getString("APPROVAL_CODE"));
    pohSl.setBrand(getPORs.getString("BRAND"));
    pohSl.setBusinessSegment(getPORs.getString("BUSINESS_SEGMENT"));
    pohSl.setBusinessSubSegment(getPORs.getString("BUSINESS_SUB_SEGMENT"));
    pohSl.setBuyDate(getPORs.getString("BUY_DATE"));
    pohSl.setCareContentLabel(getPORs.getString("CARE_CONTENT_LABEL"));
    pohSl.setCartonMarkings1(getPORs.getString("CARTON_MARKINGS_1"));
    pohSl.setCartonMarkings2(getPORs.getString("CARTON_MARKINGS_2"));
    pohSl.setCartonMarkings3(getPORs.getString("CARTON_MARKINGS_3"));
    pohSl.setCartonMarkings4(getPORs.getString("CARTON_MARKINGS_4"));
    pohSl.setComments(getPORs.getString("COMMENTS"));
    pohSl.setCommissionPerUnit(getPORs.getString("COMMISSION_PER_UNIT"));
    pohSl.setCompanyId(getPORs.getString("COMPANY_ID"));
    pohSl.setCompulsoryString(getPORs.getString("COMPULSORY_STRING"));
    pohSl.setConTimestamp(getPORs.getString("CON_TIMESTAMP"));
    pohSl.setCurrency(getPORs.getString("CURRENCY"));
    pohSl.setCustomerBillToNumber(getPORs.getString("CUSTOMER_BILL_TO_NUMBER"));
    pohSl.setCustomerLcBank(getPORs.getString("CUSTOMER_LC_BANK"));;
    pohSl.setCustomerLcDate(getPORs.getString("CUSTOMER_LC_DATE"));
    pohSl.setCustomerLcExpiryDate(getPORs.getString("CUSTOMER_LC_EXPIRY_DATE"));
    pohSl.setCustomerLcNumber(getPORs.getString("CUSTOMER_LC_NUMBER"));
    pohSl.setCustomerPoNumber(getPORs.getString("CUSTOMER_PO_NUMBER"));
    pohSl.setCustomerSaleDept(getPORs.getString("CUSTOMER_SALE_DEPT"));
    pohSl.setCustomerShipToNumber(getPORs.getString("CUSTOMER_SHIP_TO_NUMBER"));
    pohSl.setCustomerSo(getPORs.getString("CUSTOMER_SO"));
    pohSl.setDateLastModifiedErp(getPORs.getString("DATE_LAST_MODIFIED_ERP"));
    pohSl.setDateLastModifiedOv(getPORs.getString("DATE_LAST_MODIFIED_OV"));
    pohSl.setDateOfActivation(getPORs.getString("DATE_OF_ACTIVATION"));
    Print.log(" ******** inside getPO() ----- > ****** built Header" +System.currentTimeMillis()
    if(getPORs != null)
    getPORs.close();
    getPORs = null;
    if(cstmt != null)
    Print.log("In the close");
    cstmt.close();
    cstmt = null;
    catch (Exception e)
    System.out.println(" in dataAccess.getPO() ----- > " + e.toString());
    throw new Exception(e.toString()); //if there are anyexceptions
    then throw back the exceptions
    finally //finally block to release anyconnections
    and statement objects
    if(getPORs != null)
    getPORs.close();
    getPORs = null;
    if (pstmt!=null)
    pstmt.close();
    pstmt = null;
    if (cstmt!=null)
    cstmt.close();
    cstmt = null;
    if (dbConn!=null)
    dbConn.close();
    dbConn = null;
    return poSl; //return the PO object
    Can anyone help with this?

Maybe you are looking for