Potentia Memory Leal in 11.1.0.7

We are on oracle version 11.1.0.7 Patch 13. We can see the oracle binaries memory consumption increaes constantly. This results in reboot of database server periodically which affects production. We cannot upgrade this to higher patchset because of application limitation. Please suggest some solution.

please find the out of the query and thanks for helping...
8480 29 134 7 ACTIVE 3,837,058,284 1,915,366,348 SYSTEM ORACLE.EXE (CJQ0)
8108 44 113 1 ACTIVE 381,410,540 27,305,246 SYSTEM ORACLE.EXE (AS03)
8716 25 140 10 ACTIVE 59,497,708 54,748,654 PUBLIC NT AUTHORITY ORACLE.EXE
\SYSTEM
7692 38 127 127 ACTIVE 49,470,700 1,198,750 SYSTEM ORACLE.EXE (MS00)
8316 41 119 1 ACTIVE 47,308,012 21,730,766 SYSTEM ORACLE.EXE (AS00)
6676 37 125 35 ACTIVE 40,737,356 1,719,020 SYSTEM ORACLE.EXE (LSP0)
7856 46 109 1 ACTIVE 35,511,532 28,834,942 SYSTEM ORACLE.EXE (AS05)
6020 43 115 1 ACTIVE 34,659,564 27,762,294 SYSTEM ORACLE.EXE (AS02)
7888 45 112 1 ACTIVE 33,479,916 28,959,710 SYSTEM ORACLE.EXE (AS04)
7204 42 117 1 ACTIVE 32,300,268 27,629,622 SYSTEM ORACLE.EXE (AS01)
7232 14 157 1 ACTIVE 19,962,444 14,842,372 SYSTEM ORACLE.EXE (MMON)
8300 21 151 1 ACTIVE 12,377,324 4,945,804 SYSTEM ORACLE.EXE (ARC2)
6572 18 154 5 ACTIVE 12,377,324 4,912,644 SYSTEM ORACLE.EXE (ARC0)
896 22 150 1 ACTIVE 10,149,100 4,920,036 SYSTEM ORACLE.EXE (LNS1)
8712 10 161 1 ACTIVE 10,018,028 4,964,308 SYSTEM ORACLE.EXE (LGWR)
7592 20 152 2 ACTIVE 10,018,028 4,954,988 SYSTEM ORACLE.EXE (ARC1)
8828 39 123 1 ACTIVE 6,872,300 5,263,606 SYSTEM ORACLE.EXE (MS01)

Similar Messages

  • Potential memory leak in 11.2.0.1.0 cluster stack components

    Hi All,
    We are running 11.2.0.1.0 RAC on OEL 5.5 and OEL 5.5. On all of our boxes, we have observed a gradual increase and filling of swap space. Swap usage slowly but steadily increase to a point where either the Node boots automatically or we have to manually restart it.
    To get more insight into the issues, we recently upgraded one of the nodes to Oracle unbreakable kernel and installed smem to profile the memory consumption pattern. smem will give the process set size (RSS), the unique set size (USS) and the proportional set size (PSS) which is the unique set size plus a portion of the shared memory that is being used by this process.
    It appears that there is a gradual increase in memory/swap consumption of some clusterware components. Also the weird part is that the process is filling up the swap space and not utilizing the unallocated RAM.
    Memory footprint at the Node start...
    PID User Command Swap USS PSS RSS
    4001 root /u01/app/11.2.0/grid/bin/ohasd.bin 16236 18128 18829 30284
    5200 oracle /u01/app/11.2.0/grid/bin/oraagent.bin 13536 74512 75587 87156
    4255 grid /u01/app/11.2.0/grid/bin/oraagent.bin 13484 2644 3628 15056
    4688 root /u01/app/11.2.0/grid/bin/crsd.bin 8240 71584 72628 85692
    Memory footprint after 24 hrs...
    PID User Command Swap USS PSS RSS
    5200 oracle /u01/app/11.2.0/grid/bin/oraagent.bin 94952 121168 122161 133488
    4688 root /u01/app/11.2.0/grid/bin/crsd.bin 66220 76684 77723 90776
    4001 root /u01/app/11.2.0/grid/bin/ohasd.bin 21448 24708 25410 36892
    4255 grid /u01/app/11.2.0/grid/bin/oraagent.bin 13840 2372 3202 14316
    #free -m
    total used free shared buffers cached
    Mem: 3964 3856 108 0 5 1846
    -/+ buffers/cache: 2004 1959
    Swap: 4094 617 3477
    Has anyone experience similar situation? I did google search as well as Metalink, but did not find anything useful.
    Any thoughts/suggestions are welcome.
    Thanks,
    -Sanjeev
    Edited by: user12219014 on Jan 9, 2011 5:58 AM

    Thanks for pointing to MOS notes, they were quite helpful. Though sometime on our system, ohasd.bin consumes more resources. Is it safe to kill it?
    Also, we have observed that there are multiple oraagents belonging to different users such as root,grid and oracle.
    grid 14620 1 0 20:32 ? 00:00:14 /u01/app/11.2.0/grid/bin/oraagent.bin
    root 14625 1 0 20:32 ? 00:00:02 /u01/app/11.2.0/grid/bin/orarootagent.bin
    root 14627 1 0 20:32 ? 00:00:00 /u01/app/11.2.0/grid/bin/cssdagent
    grid 14803 1 0 20:32 ? 00:00:06 /u01/app/11.2.0/grid/bin/oraagent.bin
    oracle 14807 1 0 20:32 ? 00:01:53 /u01/app/11.2.0/grid/bin/oraagent.bin
    root 14811 1 0 20:32 ? 00:00:38 /u01/app/11.2.0/grid/bin/orarootagent.bin
    When these are killed, not all are re-spawned automatically - typically oraagent belonging to "oracle" user is left out. Is this an expected behaviour or it will cause some instability in the clusterware?
    Thanks

  • Potential Memory Leak during Marshelling of a Web Service Response

    I believe I have found a memory leak when using the configuration below.
    The memory leak occurs when calling a web service. When the web service function is marshelling the response of the function call, an "500 Internal Server Error ... java.lang.OutOfMemoryError" is returned from OC4J. This error may be seen via the TCP Packet Monitor in JDeveloper.
    Unfortunately no exception dump is outputted to the OC4J log.
    Configuration:
    Windows 2000 with 1 gig ram
    JDeveloper 9.0.5.2 with JAX/RPC extension installed
    OC4J 10.0.3
    Sun JVM version 1.4.2_03-b02
    To demonstrate the error I created a simple web service and client. See below the client and web service function that demonstrates it.
    The web service is made up of a single function called "queryTestOutput".
    It returns an object of class "TestOutputQueryResult" which contains an int and an array.
    The function call accepts a one int input parameter which is used to vary the size of array in the returned object.
    For small int (less than 100). Web service function returns successfully.
    For larger int and depending on the size of memory configuration when OC4J is launched,
    the OutOfMemoryError is returned.
    The package "ws_issue.service" contains the web service.
    I used the Generate JAX-RPC proxy to build the client (found in package "ws_issue.client"). Package "types" was
    also created by Generate JAX-RPC proxy.
    To test the web service call execute the class runClient. Vary the int "atestValue" until error is returned.
    I have tried this with all three encodings: RPC/Encoded, RPC/Literal, Document/Literal. They have the
    same issue.
    The OutOfMemory Error is raised fairly consistently using the java settings -Xms386m -Xmx386m for OC4J when 750 is specified for the input parameter.
    I also noticed that when 600 is specified, the client seems to hang. According to the TCP Packet Monitor,
    the response is returned. But, the client seems unable to unmarshal the message.
    ** file runClient.java
    // -- this client is using Document/Literal
    package ws_issue.client;
    public class runClient
    public runClient()
    * @param args
    * Test out the web service
    * Play with the atestValue variable to until exception
    public static void main(String[] args)
    //runClient runClient = new runClient();
    long startTime;
    int atestValue = 1;
    atestValue = 2;
    //atestValue = 105; // last one to work with default memory settings in oc4j
    //atestValue = 106; // out of memory error as seen in TCP Packet Monitor
    // fails with default memory settings in oc4j
    //atestValue = 600; // hangs client (TCP Packet Monitor shows response)
    // when oc4j memory sessions are -Xms386m -Xmx386m
    atestValue = 750; // out of memory error as seen in TCP Packet Monitor
    // when oc4j memory sessions are -Xms386m -Xmx386m
    try
    startTime = System.currentTimeMillis();
    Ws_issueInterface ws = (Ws_issueInterface) (new Ws_issue_Impl().getWs_issueInterfacePort());
    System.out.println("Time to obtain port: " + (System.currentTimeMillis() - startTime) );
    // call the web service function
    startTime = System.currentTimeMillis();
    types.QueryTestOutputResponse qr = ws.queryTestOutput(new types.QueryTestOutput(atestValue));
    System.out.println("Time to call queryTestOutput: " + (System.currentTimeMillis() - startTime) );
    startTime = System.currentTimeMillis();
    types.TestOutputQueryResult r = qr.getResult();
    System.out.println("Time to call getresult: " + (System.currentTimeMillis() - startTime) );
    System.out.println("records returned: " + r.getRecordsReturned());
    for (int i = 0; i<atestValue; i++)
    types.TestOutput t = r.getTestOutputResults();
    System.out.println(t.getTestGroup() + ", " + t.getUnitNumber());
    catch (Exception e)
    e.printStackTrace();
    ** file wsmain.java
    package ws_issue.service;
    import java.rmi.RemoteException;
    import javax.xml.rpc.ServiceException;
    import javax.xml.rpc.server.ServiceLifecycle;
    public class wsmain implements ServiceLifecycle, ws_issueInterface
    public wsmain()
    public void init (Object p0) throws ServiceException
    public void destroy ()
    System.out.println("inside ws destroy");
    * create an element of the array with some hardcoded values
    private TestOutput createTestOutput(int cnt)
    TestOutput t = new TestOutput();
    t.setComments("here are some comments");
    t.setConfigRevisionNo("1");
    t.setItemNumber("123123123");
    t.setItemRevision("arev" + cnt);
    t.setTestGroup(cnt);
    t.setTestedItemNumber("123123123");
    t.setTestedItemRevision("arev" + cnt);
    t.setTestResult("testResult");
    t.setSoftwareVersion("version");
    t.setTestConditions("conditions");
    t.setStageName("world's a stage");
    t.setTestMode("Test");
    t.setTestName("test name");
    t.setUnitNumber("UnitNumber"+cnt);
    return t;
    * Web service function that is called
    * Create recCnt number of "records" to be returned
    public TestOutputQueryResult queryTestOutput (int recCnt) throws java.rmi.RemoteException
    System.out.println("Inside web service function queryTestOutput");
    TestOutputQueryResult r = new TestOutputQueryResult();
    TestOutput TOArray[] = new TestOutput[recCnt];
    for (int i = 0; i< recCnt; i++)
    TOArray[i] = createTestOutput(i);
    r.setRecordsReturned(recCnt);
    r.setTestOutputResults(TOArray);
    System.out.println("End of web service function call");
    return r;
    * @param args
    public static void main(String[] args)
    wsmain wsmain = new wsmain();
    int aval = 5;
    try
    TestOutputQueryResult r = wsmain.queryTestOutput(aval);
    for (int i = 0; i<aval; i++)
    TestOutput t = r.getTestOutputResults()[i];
    System.out.println(t.getTestGroup() + ", " + t.getUnitNumber());
    catch (Exception e)
    e.printStackTrace();
    ** file ws_issueInterface.java
    package ws_issue.service;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    public interface ws_issueInterface extends java.rmi.Remote
    public TestOutputQueryResult queryTestOutput (int recCnt) throws java.rmi.RemoteException;
    ** file TestOutputQueryResult.java
    package ws_issue.service;
    public class TestOutputQueryResult
    private long recordsReturned;
    private TestOutput[] testOutputResults;
    public TestOutputQueryResult()
    public long getRecordsReturned()
    return recordsReturned;
    public void setRecordsReturned(long recordsReturned)
    this.recordsReturned = recordsReturned;
    public TestOutput[] getTestOutputResults()
    return testOutputResults;
    public void setTestOutputResults(TestOutput[] testOutputResults)
    this.testOutputResults = testOutputResults;
    ** file TestOutput.java
    package ws_issue.service;
    public class TestOutput
    private String itemNumber;
    private String itemRevision;
    private String configRevisionNo;
    private String testName;
    private String testConditions;
    private String stageName;
    private String testedItemNumber;
    private String testedItemRevision;
    private String unitNumber;
    private String testStation;
    private String testResult;
    private String softwareVersion;
    private String operatorID;
    private String testDate; // to be datetime
    private String comments;
    private int testGroup;
    private String testMode;
    public TestOutput()
    public String getComments()
    return comments;
    public void setComments(String comments)
    this.comments = comments;
    public String getConfigRevisionNo()
    return configRevisionNo;
    public void setConfigRevisionNo(String configRevisionNo)
    this.configRevisionNo = configRevisionNo;
    public String getItemNumber()
    return itemNumber;
    public void setItemNumber(String itemNumber)
    this.itemNumber = itemNumber;
    public String getItemRevision()
    return itemRevision;
    public void setItemRevision(String itemRevision)
    this.itemRevision = itemRevision;
    public String getOperatorID()
    return operatorID;
    public void setOperatorID(String operatorID)
    this.operatorID = operatorID;
    public String getSoftwareVersion()
    return softwareVersion;
    public void setSoftwareVersion(String softwareVersion)
    this.softwareVersion = softwareVersion;
    public String getStageName()
    return stageName;
    public void setStageName(String stageName)
    this.stageName = stageName;
    public String getTestConditions()
    return testConditions;
    public void setTestConditions(String testConditions)
    this.testConditions = testConditions;
    public String getTestDate()
    return testDate;
    public void setTestDate(String testDate)
    this.testDate = testDate;
    public String getTestName()
    return testName;
    public void setTestName(String testName)
    this.testName = testName;
    public String getTestResult()
    return testResult;
    public void setTestResult(String testResult)
    this.testResult = testResult;
    public String getTestStation()
    return testStation;
    public void setTestStation(String testStation)
    this.testStation = testStation;
    public String getTestedItemNumber()
    return testedItemNumber;
    public void setTestedItemNumber(String testedItemNumber)
    this.testedItemNumber = testedItemNumber;
    public String getTestedItemRevision()
    return testedItemRevision;
    public void setTestedItemRevision(String testedItemRevision)
    this.testedItemRevision = testedItemRevision;
    public String getUnitNumber()
    return unitNumber;
    public void setUnitNumber(String unitNumber)
    this.unitNumber = unitNumber;
    public int getTestGroup()
    return testGroup;
    public void setTestGroup(int testGroup)
    this.testGroup = testGroup;
    public String getTestMode()
    return testMode;
    public void setTestMode(String testMode)
    this.testMode = testMode;

    I use web services a lot and I sympathize with your issue. I
    struggle with similar issues and I found this great utility that
    will help you confirm if your webservice is returning the data
    correctly to Flex. I know you said it works in other applications
    but who knows if flex is calling it correctly etc. This utility is
    been the most amazing tool in helping me resolve web service
    issues.
    http://www.charlesproxy.com/
    Once you can confirm the data being returned is good you can
    try several things in flex. Try changing your result format to
    object or e4x etc. See how that plays out. Not sure where your
    tapping in to look at your debugger, you might want to catch it
    right at the result handler before converting to any collections. .
    If nothing here helps maybe post some code to look at. .
    .

  • Potential Memory Leak in rmi

    We have a service that is being monitored via JMX. The JVM heap usage is growing and even major collections are not able to remove the garbage. Inspecting the heap shows garbage consisting of RMI related references (mostly, if not all, related class loaders). The only way to alleviate the issue is to issue explicit gc call through JMX (that removes all accumulated garbage). Our gc related options are:
    -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly
    And we have not touched either of: DisableExplicitGC or sun.rmi.dgc.server.gcInterval
    I believe the problem is supposed to addressed by the code in sun.misc.GC.Daemon:
    public void run() { for (;;) { long l; synchronized (lock) {  l = latencyTarget; if (l == NO_TARGET) { /* No latency target, so exit */ GC.daemon = null; return; }  long d = maxObjectInspectionAge(); if (d >= l) { /* Do a full collection. There is a remote possibility * that a full collection will occurr between the time * we sample the inspection age and the time the GC * actually starts, but this is sufficiently unlikely * that it doesn't seem worth the more expensive JVM * interface that would be required. */ System.gc(); d = 0; }  /* Wait for the latency period to expire, * or for notification that the period has changed */ try { lock.wait(l - d); } catch (InterruptedException x) { continue; } } } }
    For some reason the above System.gc is not being invoked (that has been verified by looking at gc logs). Anyone has a suggestion as to how to address the issue?

    Thanks for pointing to MOS notes, they were quite helpful. Though sometime on our system, ohasd.bin consumes more resources. Is it safe to kill it?
    Also, we have observed that there are multiple oraagents belonging to different users such as root,grid and oracle.
    grid 14620 1 0 20:32 ? 00:00:14 /u01/app/11.2.0/grid/bin/oraagent.bin
    root 14625 1 0 20:32 ? 00:00:02 /u01/app/11.2.0/grid/bin/orarootagent.bin
    root 14627 1 0 20:32 ? 00:00:00 /u01/app/11.2.0/grid/bin/cssdagent
    grid 14803 1 0 20:32 ? 00:00:06 /u01/app/11.2.0/grid/bin/oraagent.bin
    oracle 14807 1 0 20:32 ? 00:01:53 /u01/app/11.2.0/grid/bin/oraagent.bin
    root 14811 1 0 20:32 ? 00:00:38 /u01/app/11.2.0/grid/bin/orarootagent.bin
    When these are killed, not all are re-spawned automatically - typically oraagent belonging to "oracle" user is left out. Is this an expected behaviour or it will cause some instability in the clusterware?
    Thanks

  • Problem with application and storage and memory.

    I NEED HELP!! I am trying to add more application s to my Blackberry Curve 8330. My problem is I don't have enough storage to even add a couple of application s and their updates to my phone. I have an 8GB media card with like 7.3GB of free space. Also, I only have 3.7MB of free space on my device. One of my questions is, How do you add things to your memory card instead of your device memory? Second thing is, if anyone decides to respond to this discussion, please use simple steps. Thanks soooo much.
    ~Robin

    Hello!
    There are three types of potential memory on a BB: 1) Application Memory, 2) Device Memory, and 3) Media/SD Card Memory
    Application Memory -- This is the most crucial; it is the protected (not user accessible), dedicated, and fixed (in size) space that is available as the destination for the installation of applications (plus some application storage, overhead and such). You cannot touch AppMemory. You cannot improve the maximum AppMemory that your BB has. It is what it is. Applications can only install here...there is no option.
    Device Memory -- This is space on your BB that you can touch to store files, pictures, media, etc. Typically, it is not terribly large, but it is available to you.
    SD/Media Card Memory -- This is what it says...your SD card, for you to store files, media, pictures, etc. It cannot be used as the target for installing applications (only App Memory can be used for that). It can be as large as your BB OS can support...see this KB:
    http://www.blackberry.com/btsc/KB05461
    On some devices/OS levels, you can only see "File Free" (Options > Status), which I think is equivalent to AppMemory. On other devices, you can see all three memory usage levels (Options > Memory). Here are some guidelines to use:
    http://www.blackberry.com/btsc/KB15345
    http://www.blackberry.com/btsc/KB14320
    http://www.blackberry.com/btsc/KB14213
    Lastly, it is always important to properly close applications when you are done with them. Using the Back or the Red key will not do this -- those leave it to the app to decide what to do...and some will leave themselves resident in memory, consuming resources on your BB, slowing the overall performance. Rather, to close an app, press and select "Close" or "Exit"...that will force the application to be closed, freeing up for your new use the resources it was consuming. Some apps will always remain running (typically -- BBMessenger, Browser, Homescreen, Phone, and Messages)...but, you should still close them properly - especially the Browser...if it is left on an active web page, it will not only consume extra resources but battery power as well.
    Further, anytime random strange behavior or sluggishness creeps in, the first thing to do is a battery pop reboot. With power ON, remove the back cover and pull out the battery. Wait about a minute then replace the battery and cover. Power up and wait patiently through the long reboot -- ~5 minutes. See if things have returned to good operation. Like all computing devices, BB's suffer from memory leaks and such...with a hard reboot being the best cure. Some have taken to doing this on a regular basis as a preventive measure...some as frequently as once per day. Others have obtained the QuickPull app to automate a simulated Batt-Pull.
    Best!
    Good luck!
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Memory leak analysis

    I've been writing a multi-threaded, non-blocking I/O game server and I'm kinda taking a break from hammering out code at the moment to analyze how efficient the server is. With 100-300 clients each transmitting data and receiving a proper response once every second or so, the server has almost 0% CPU load (on an AMD 4000+ 64bit CPU) so I am very happy with this.
    However, I find that with -verbose:gc on, I can watch the memory every so slowly leak away.. for instance, I will lose around 3 kb / minute with an initial stack of 128mb, 256mb max with a few clients, and this can get as high as 100kb / minute with 200 clients hammering the server. I have looked quite hard at the code and I cannot see anywhere where I am continuously allocating memory and retaining references to it, so everything should be getting GC'd, but some additional kilobytes remain after each GC.
    What I am wondering is, how can I profile the memory usage to, for instance, have an up-to-date count of how many objects of type X (including Strings and ArrayLists and stuff) that are currently in existance at any given time? This would at least give me a better idea of where this potential memory leak is?
    Thanks in advance,
    James

    You may find the JVM is still warming up. It attempts to optimise as it goes and can still be consuming more memory as it re-optimises.

  • How to get information about limitation Internal Memory on device

    hallo ..
    have some question here, so please some person able to answer my questions 
    1. How to get Information about limitation internal memory on device 
    2. is possible to improve internal memory on Blackberry ( move apps on external memory )
    3. any tools to get internal memory activity ?
    thanks for this people who joins here, hope we can share more information about blackberry .. 

    In addition...
    There are three types of potential memory on a BB: 1) Application Memory, 2) Device Memory, and 3) Media/SD Card Memory.
    Application Memory -- This is the most crucial; it is the protected (not user accessible), dedicated, and fixed (in size) space that is available as the destination for the installation of applications (plus some application storage, overhead and such). You cannot touch AppMemory. You cannot improve the maximum AppMemory that your BB has. It is what it is. Applications can only install here...there is no option.
    Device Memory -- This is space on your BB that you can touch to store files, pictures, media, etc. Typically, it is not terribly large, but it is available to you.
    SD/Media Card Memory-- This is what it says...your SD card, for you to store files, media, pictures, etc. It can be as large as your BB OS can support...see this KB:
    KB05461MicroSD card sizes supported by the BlackBerry device software
    On some devices/OS levels, you can only see "File Free" (Options > Status), which I think is equivalent to AppMemory. On other devices, you can see all three memory usage levels (Options > Memory). Here are some guidelines to use:
    KB02843What is the Low Memory Manager feature on the BlackBerry smartphone
    KB14320How to maximize free space and battery power on the BlackBerry smartphone
    KB14213Call logs, SMS text messages, and email messages are deleted from the BlackBerry smartphone
    Lastly, it is always important to properly close applications when you are done with them. Using the Back or the Red key will not do this -- those leave it to the app to decide what to do...and some will leave themselves resident in memory, consuming resources on your BB, slowing the overall performance. Rather, to close an app, press and select "Close" or "Exit"...that will force the application to be closed, freeing up for your new use the resources it was consuming. Some apps will always remain running (typically -- BBMessenger, Browser, Homescreen, Phone, and Messages)...but, you should still close them properly - especially the Browser...if it is left on an active web page, it will not only consume extra resources but battery power as well.
    Further, anytime random strange behavior or sluggishness creeps in, the first thing to do is a battery pop reboot. With power ON, remove the back cover and pull out the battery. Wait about a minute then replace the battery and cover. Power up and wait patiently through the long reboot -- ~5 minutes. See if things have returned to good operation. Like all computing devices, BB's suffer from memory leaks and such...with a hard reboot being the best cure. Some have taken to doing this on a regular basis as a preventive measure...some as frequently as once per day. Others have obtained the QuickPull app to automate a simulated Batt-Pull.
    Good luck!
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • FIM: Freeing invalid memory in OCIServerAttach

    Hi,
    I have the following piece of code for making connection to Oracle server -
    retCode = OCIEnvCreate(envHandle, OCI_THREADED, (dvoid *)0, 0, 0, 0, (size_t) 0, (dvoid **)0);
    if(retCode == OCI_SUCCESS)
    isEnvAllocated = PMTRUE;
    retCode = OCIHandleAlloc( (dvoid *) envHandle, (dvoid *) &errhp, OCI_HTYPE_ERROR, (size_t) 0, (dvoid **) 0);
    // server contexts
    retCode = OCIHandleAlloc( (dvoid *) envHandle, (dvoid *) &srvhp, OCI_HTYPE_SERVER,(size_t) 0, (dvoid **) 0);
    retCode = OCIHandleAlloc( (dvoid *) envHandle, (dvoid *) &svchp, OCI_HTYPE_SVCCTX,(size_t) 0, (dvoid **) 0);
    pError = checkError(*envHandle, errhp, OCIServerAttach(srvhp, errhp, (ptext *)dbName, strlen(dbName), 0));
    Purify is reporting FIM: Freeing invalid memory in LocalFree {1 occurrence} and the stack trace is -
    [E] FIM: Freeing invalid memory in LocalFree {1 occurrence}
    Address 0x001430f8 points into a HeapAlloc'd block in unallocated region of the default heap
    Location of free attempt
    LocalFree [KERNEL32.dll]
    ??? [security.dll ip=0x76e71a7f]
    AcquireCredentialsHandleA [security.dll]
    naunts5 [orannts8.dll]
    naunts [orannts8.dll]
    sntseltst [oran8.dll]
    naconnect [oran8.dll]
    naconnect [oran8.dll]
    naconnect [oran8.dll]
    nsmore2recv [oran8.dll]
    nsmore2recv [oran8.dll]
    nscall [oran8.dll]
    niotns [oran8.dll]
    osncon [oran8.dll]
    xaolog [OraClient8.Dll]
    xaolog [OraClient8.Dll]
    upiah0 [OraClient8.Dll]
    kpuatch [OraClient8.Dll]
    OCIServerAttach [OraClient8.Dll]
    OCIServerAttach [OCI.dll]
    Does anyone has idea why it is giving that error.
    Also there is a leak associated with it too and the stack trace for that is -
    MPK: Potential memory leak of 4140 bytes from 2 blocks allocated in nsbfree
    Distribution of potentially leaked blocks
    Allocation location
    calloc [msvcrt.dll]
    nsbfree [oran8.dll]
    nsbfree [oran8.dll]
    sntseltst [oran8.dll]
    sntseltst [oran8.dll]
    nsdo [oran8.dll]
    nscall [oran8.dll]
    nscall [oran8.dll]
    niotns [oran8.dll]
    osncon [oran8.dll]
    xaolog [OraClient8.Dll]
    xaolog [OraClient8.Dll]
    upiah0 [OraClient8.Dll]
    kpuatch [OraClient8.Dll]
    OCIServerAttach [OraClient8.Dll]
    OCIServerAttach [OCI.dll]
    Is it a standard leak that is happening in OCI.dll or it is the usage issue so that it can be solved by using OCIServerAttach in a different way.
    Any help in this matter is greatly appreciated.
    Thanks
    Anil
    [email protected]

    I believe that both issues are actually the result of false positives. In general, it's not really possible to tell whether C++ code is actually leaking memory or freeing invalid memory handles. Tools like Purify, BoundChecker, etc. will generally give this sort of false positive when the code you're profiling does something 'dangerous'. I believe you can ignore both messages-- at least the Oracle ODBC driver development group did when I was there.
    Justin

  • URGENT: Memory leak in UIX 2.1.7?????

    We are using UIX 2.1.7 and when searching for potential memory leaks we found a situation where UIX does not release some of our dataObjects after a page has been rendered. Analyzing the problem we found out that there are CompositeRenderingContext objects which seem to be reused but they always maintain a reference to the dataObjects that have been used when rendering the last page.
    The references are: CompositeRenderingContext holds CompositeRenderingContext holds Comp...... holds TableRenderingContext holds CustomDataObject
    In our case this is a very bad behaviour because some of our dataObjects are quite large and maintain references to lots of other objects, which can never be released (even after all users logged out) unless the RenderingContext releases our dataObjects.
    So my question:
    Are these observations correct?
    Is there a way to make the renderingContext release the dataObjects after rendering the page - or to explicitly say remove all unused renderingContext objects?
    How many such CompositeRenderingContext trees can the UIXFramework at most hold?
    Please help - this is very urgent as we have a customer that thinks the memory consumption of our application grows indefinitely and they cannot go into production with such a problem.
    Thanks,
    Guido

    Hi Guido,
    This was fixed in UIX 2.1.16 and UIX 2.2.0. This is not an unbounded memory leak; it will eventually peak. Patching to UIX 2.1.16 or later will resolve the problem. You'll have to contact your Oracle support team to get this release. I'm not sure how that works.
    JDeveloper 10g Preview has UIX 2.2.
    Thanks,
    Jeanne

  • "Word has insufficient memory"

    I have a master document which is made up of 10 individual documents created in Word 2003. admitedly, it's a huge file of about 20MB once loaded and consists of tables, numerous jpeg images, links, etc.
    When I try to convert the file into PDF format using the "Convert to Adobe PDF" function, i'll get the
    b "Word has insufficient memory. You will not be able to undo this action once it is completed. Do you want to continue?"
    message.
    It pauses and waits for my Yes/No answer before proceeding - rinse and repeat. This message will appear many, many times and it does not seem to make any difference at all when i answer yes or no.
    I am aware that for a file of this size, the conversion time would run into the hours (I am OK with that). However, is there a way to get the pop-up message from repeatedly pausing and asking for my confirmation?
    My computer specs:
    Intel T2330 CPU 1.66GHz (does not exceed 10% of its capacity when converting)
    1.5GB of RAM (when converting, only 700MB - 800MB is in use)
    60GB HDD (~30GB in use)
    WinXP SP2 (updated with the latest updates from microsoft)
    Adobe Acrobat Standard 8
    Microsoft Word 2003
    any insight would be greatly appreciated. thank you!

    Tagging causes a lot of bloat, but I am not sure why. Keep in mind that the conversion process first creates a PS file (not very memory conservative) before the final conversion to a PDF. That is probably where you are getting hung up. You should only use the features in PDF Maker that you really need. If you don't need them, then it is best to just print to the Adobe PDF printer.
    Embedding the fonts in the PS file (an option) is also a potential memory issue that is not needed.

  • Max memory, and 1.3 vs 1.4

    Hi Guys.
    I have a windows 2000 computer, with 2Gb of memory, running Sun's JVMs.
    I'm using JRE 1.4.2_4, and I can only allocate 1.2Gb of memory (With the JVM switches). Any more and I get a 'cannot allocate memory' error.
    How can I get more memory? If I upgrade my machine to 4Gb, will that help?
    When using Java 1.3, I was able to allocate 1.5Gb of memory. I've now switched to 1.4, and only 1.2Gb is possible. Why is it lower now?
    Cheers,
    R.

    This entirely OS based problem and it depends on this
    libraries the JRE uses (They use the space their own way)
    I have run a 1.8 GB JRE on Solaris (with 2 GB memory)
    with no problems (Except if I want to run anything else)Yes but that is the limit on solaris. Again if you had added more memory it would not have allowed you to increase the maximum.
    Running 1.5 may be better but using another OS like XP
    or Linux will probibly make more difference.
    You may also find adding more memory for the OS to
    hide may also help.No 1.5 will not help. It will likely decrease the maximum on all OSes (as all other releases have done so.)
    To increase the potential memory the following is required...
    - A 64 bit VM must be used.
    - An OS compatible with the 64 bit VM must be used.
    And realistically to the above one would also have to have enough phyiscal memory to support the maximum. Although this is not necessary, the VM will run probably at least an order of magnitude slower if this is not the case.
    I believe someone reported on the forums that they are running a VM with 16 gig of memory (64 bit VM of course.)

  • Memory Management release or autorelease?

    Hi!
    Im am finishing my app and starting to optimize and analyze my code with instruments..
    There are still some things concerning memory management I dont understand..
    1. I'm starting a urlConnection. My class implements the connection delegate, so, it is "waiting" for the response data in a background thread. If I am clicking "build & analyze", XCode complains about a potential memory leak for the getMessageHeaderConnection variable if I am not releasing it. Should I release it (variant 1), or should I autorelease it (variant 2)? Releasing means, that the object is destroyed, right? But: If am releasing it (variant 1) my getGroupMsgHeaders:groupId method doesn't stop immediately, it is still alive, but it should be dead, right?
    - (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    GetMessageHeaderConnection *getMessageHeaderConnection = [[GetMessageHeaderConnection alloc] initWithDelegate:self];
    getMessageHeaderConnection.currentUserLocation = currentUserLocation;
    [getMessageHeaderConnection getGroupMsgHeaders:groupId];
    [getMessageHeaderConnection autorelease]; //variant 2
    [getMessageHeaderConnection release];//variant 1

    sommeralex wrote:
    1. I'm starting a urlConnection. My class implements the connection delegate, so, it is "waiting" for the response data in a background thread.
    Are you sure that is the best strategy? Threading can make things painfully difficult and complicate your life, including where autorelease is concerned. You should be able to do this on the main thread.
    If I am clicking "build & analyze", XCode complains about a potential memory leak for the getMessageHeaderConnection variable if I am not releasing it. Should I release it (variant 1), or should I autorelease it (variant 2)?
    Neither, apparently.
    Releasing means, that the object is destroyed, right?
    Yes.
    But: If am releasing it (variant 1) my getGroupMsgHeaders:groupId method doesn't stop immediately, it is still alive, but it should be dead, right?
    If that is running in another thread, then it will continue running, but "self" will be invalid and will crash when you access it. Don't bother testing it, because it could work just fine in debug mode. It will still crash when someone else tries it.
    Standard procedure in this case is to make sure that the method running in the background thread retains itself until the method is done. Many of the built-in threading methods or other asynchronous methods (such as NSInvocation) will do that automatically. You can study the documentation to find out where that happens.

  • How to maximize blackberry flash memory

    Hİ all,
    how to maximize blackberry flash memory?
    examp: 9000 internal memory 1gb
     but only we can use 256 mb for messages
    best regard
    Blackberry support teams in linkedin ...join
    http://www.linkedin.com/groups?home=&gid=2785187&trk=anet_ug_hm
    For Russian
    http://www.linkedin.com/groups?gid=3183812&trk=anetsrch_name&goback=.gdr_1278482273982_1
    Solved!
    Go to Solution.

    Hello!
    There are three types of potential memory on a BB: 1) Application Memory, 2) Device Memory, and 3) Media/SD Card Memory
    Application Memory -- This is the most crucial; it is the protected (not user accessible), dedicated, and fixed (in size) space that is available as the destination for the installation of applications (plus some application storage, overhead and such). You cannot touch AppMemory. You cannot improve the maximum AppMemory that your BB has. It is what it is. Applications can only install here...there is no option.
    Device Memory -- This is space on your BB that you can touch to store files, pictures, media, etc. Typically, it is not terribly large, but it is available to you.
    SD/Media Card Memory -- This is what it says...your SD card, for you to store files, media, pictures, etc. It can be as large as your BB OS can support...see this KB:
    http://www.blackberry.com/btsc/KB05461
    On some devices/OS levels, you can only see "File Free" (Options > Status), which I think is equivalent to AppMemory. On other devices, you can see all three memory usage levels (Options > Memory). Here are some guidelines to use:
    http://www.blackberry.com/btsc/KB15345
    http://www.blackberry.com/btsc/KB14320
    http://www.blackberry.com/btsc/KB14213
    Lastly, it is always important to properly close applications when you are done with them. Using the Back or the Red key will not do this -- those leave it to the app to decide what to do...and some will leave themselves resident in memory, consuming resources on your BB, slowing the overall performance. Rather, to close an app, press and select "Close" or "Exit"...that will force the application to be closed, freeing up for your new use the resources it was consuming. Some apps will always remain running (typically -- BBMessenger, Browser, Homescreen, Phone, and Messages)...but, you should still close them properly - especially the Browser...if it is left on an active web page, it will not only consume extra resources but battery power as well.
    Further, anytime random strange behavior or sluggishness creeps in, the first thing to do is a battery pop reboot. With power ON, remove the back cover and pull out the battery. Wait about a minute then replace the battery and cover. Power up and wait patiently through the long reboot -- ~5 minutes. See if things have returned to good operation. Like all computing devices, BB's suffer from memory leaks and such...with a hard reboot being the best cure. Some have taken to doing this on a regular basis as a preventive measure...some as frequently as once per day. Others have obtained the QuickPull app to automate a simulated Batt-Pull.
    Best!
    Good luck!
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Memory leaks in NI-DAQ 6.9.1

    Can anyone tell me if the API for NI-DAQ 6.9.1 has been purified to eliminate all memory leaks? I'm using DIG_Block_In() etc. with PCI-653X DIO cards. My Win2K MSC++ V6 Purify (tm) reports many potential leaks similar to the following:
    [I] MPK: Potential memory leak of 11550 bytes from 350 blocks allocated in RegistrySession::~RegistrySession(void)
    Distribution of potentially leaked blocks
    11550 bytes from 350 blocks of 33 bytes (first block: 0x04a34ae8)
    Allocation location
    malloc [msvcrt.DLL]
    RegistrySession::~RegistrySession(void) [nipsm.dll]
    moot::moot(basic_string,allocator> const&) [nipsm.dll]
    moot::moot(basic
    _string,allocator> const&) [nipsm.dll]
    moot::load(PSMQueue&) [nipsm.dll]
    BinaryFileProxy::Load(PSMQueue&) [nipsm.dll]
    BinaryFileProxy::Begin(void) [nipsm.dll]
    KeyProxy:pen(moot const&,DWORD) [nipsm.dll]
    CfqCloseConnectionToServer [nicfq32.dll]
    CfqQueryDigitalAvailability [nicfq32.dll]
    moot::moot(basic_string,allocator> const&) [nipsm.dll]

    John,
    Thanks for your reply. I'll include another Purify "Potential Leak" report and try to annotate it more.
    This is the biggest reported leak at 11550 bytes from the destructor of an object called RegistrySession found in nipsm.dll.
    The lines below "RegistrySession::~RegistrySession(void) [nipsm.dll]" form a call stack reading down. ie object moot called RegistrySession, and BinaryFileProxy::Load() called that, etc. The RegistrySession destructor is really the only culprit for allocating memory then losing it. The whole chain of events starts, however, at a call to CfqQueryDigitalAvailability in the nicfq32.dll.
    Now, my application certainly didn't call this and I have no idea what it's trying to do, but I suspect that it's called sometime
    during the loading and initialization of nidaq32.dll which I link against.
    If you indeed Purify your libraries prior to release then you should be able to duplicate my results.
    I can send you my code if you like.
    Thanks for you help,
    Dan Stine
    MPK: Potential memory leak of 11550 bytes from 350 blocks allocated in RegistrySession::~RegistrySession(void)
    Distribution of potentially leaked blocks
    Allocation location
    malloc [msvcrt.dll]
    RegistrySession::~RegistrySession(void) [nipsm.dll]
    moot::moot(basic_string,allocator> const&) [nipsm.dll]
    moot::moot(basic_string,allocator> const&) [nipsm.dll]
    moot::load(PSMQueue&) [nipsm.dll]
    BinaryFileProxy::Load(PSMQueue&) [nipsm.dll]
    BinaryFileProxy::Begin(void) [nipsm.dll]
    KeyProxy:pen(moot const&,DWORD) [nipsm.dll]
    CfqCloseConnection
    ToServer [nicfq32.dll]
    CfqQueryDigitalAvailability [nicfq32.dll]

  • Built-In Memory

    Hi! I am looking to find out how I can access the built-in memory on my Blackberry Pearl 8130! Whenever I go to download an app it tells me I don't have enough space on my device! I have a 4GB media card and no its not full, it has to be the built in memory! Help!!
    Also when I go to download an app my phone automatically wants to put in on my built-in memory not my media card. How can I send it to my media card to keep it from filling up my built-in memory! ITS SLOWING ME DOWN!!
    Thanks!!

    Hi and Welcome to the Forums!
    There are three types of potential memory on a BB: 1) Application Memory, 2) Device Memory, and 3) Media/SD Card Memory
    Application Memory -- This is the most crucial; it is the protected (not user accessible), dedicated, and fixed (in size) space that is available as the destination for the installation of applications (plus some application storage, overhead and such). You cannot touch AppMemory. You cannot improve the maximum AppMemory that your BB has. It is what it is. Applications can only install here...there is no option.
    Device Memory -- This is space on your BB that you can touch to store files, pictures, media, etc. Typically, it is not terribly large, but it is available to you.
    SD/Media Card Memory -- This is what it says...your SD card, for you to store files, media, pictures, etc. It can be as large as your BB OS can support...see this KB:
    http://www.blackberry.com/btsc/KB05461
    On some devices/OS levels, you can only see "File Free" (Options > Status), which I think is equivalent to AppMemory. On other devices, you can see all three memory usage levels (Options > Memory). Here are some guidelines to use:
    http://www.blackberry.com/btsc/KB15345
    http://www.blackberry.com/btsc/KB14320
    http://www.blackberry.com/btsc/KB14213
    Lastly, it is always important to properly close applications when you are done with them. Using the Back or the Red key will not do this -- those leave it to the app to decide what to do...and some will leave themselves resident in memory, consuming resources on your BB, slowing the overall performance. Rather, to close an app, press the BBKey and select "Close" or "Exit"...that will force the application to be closed, freeing up for your new use the resources it was consuming. Some apps will always remain running (typically -- BBMessenger, Browser, Homescreen, Phone, and Messages)...but, you should still close them properly - especially the Browser...if it is left on an active web page, it will not only consume extra resources but battery power as well.
    Further, anytime random strange behavior or sluggishness creeps in, the first thing to do is a battery pop reboot. With power ON, remove the back cover and pull out the battery. Wait about a minute then replace the battery and cover. Power up and wait patiently through the long reboot -- ~5 minutes. See if things have returned to good operation. Like all computing devices, BB's suffer from memory leaks and such...with a hard reboot being the best cure. Some have taken to doing this on a regular basis as a preventive measure...some as frequently as once per day. Others have obtained the QuickPull app to automate a simulated Batt-Pull.
    Best!
    Good luck!
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

Maybe you are looking for