DI API objects0-memory leak

Dear All,
We have created a application to load AR Invoice and Incoming Payment through PowerBuilder.
While using DI API there is a memory leak.
ie.,After loading say 500 AR invoices and corresponding payment, the application seems to hang but after some time its processing fine.
While adding each invoice,in the task manager the memory usage is increasing proportionally for that application.
We found that while using DI API objects, the issue is produced.
We are using SAP B1 2007B PL08.
Any suggestion on this issue?

Hi Jambulingam,
I've seen other developers complaining about the same problem.
Take a look at this post. It may help.
DI Memory Leak
Regards,
Vítor Vieira

Similar Messages

  • Memory Leak Issue for Adobe Access iOS API

    Hi,
    We are trying to develop an iOS app (with ARC enabled) using Adobe Acces API 4.0 and we have identified that the function [drmManager createDRMSession] has memory leak.
    DRMSESSION = [drmManager createDRMSession:METADATA playlist:PLAYLIST error:nil complete:^() {}];
    We are using:
    DRMSESSION  -> weak
    METADATA    ->strong  (as need to share within object)
    PLAYLIST       ->strong  (as need to share within object)
    After calling this function, the object is unable to dealloc and most of the leaking object related to networking (such as CFNetwork...)
    Is this a known issue for the Adobe Access iOS API or we are missing some key steps.
    Any suggestions is appreciated. Thanks in advance.

    ans0600, sorry about that, I read Hiroshi's forward too quickly.  I've done a little digging and have come up with two work-arounds:
    Create a file with ARC disabled to translate the returned object to be an autorelease
    declare the returned DRMSession as __unsafe_unretained and use CFRelease, as noted on stackexchange
    In the future we may change this method to return an autoreleased object to avoid this issue.  Let us know if you have any further questions!

  • IsJRockit Memory leak detector API available ?

    I would like to write up a JAVA client to gather heap information, things like number of instances and memory size of given object(s). These info can be displayed by memory leak detector, so there has to be an interface. my question is that is this API available for me to use? what kind of license if any I need to purchase if I intend to use my client in production?
    thanks in advance.

    Yes, JVMTI is a native interface and requires a non-java library. It's probably not a good idea to try to monitor a Java application by running more Java code in the same JVM because of the interference you create.
    Regards,
    /Staffan

  • Possible Memory Leak in C-API

    I can start my C_API JMS application and just create a JMS context. Looking at the windows task manager I see the memory footprint slowly grow.
    I'm not a Java wizard so I haven't found the right tools set for diagnosing this.
    Thanks for any help

    Has anyone else tried to track a memory leak in a JNI application? How did you achive this task, what tools did you use?You write a library in C/C++ only which does NOT use JNI which implements the functionality you want to achieve in your java application.
    You write a wrapper for that which excercises it completely including be able to run it in a loaded state.
    Then you buy/find a C/C++ profiling tool and run it on the wrapper.
    You write you JNI code such that the ONLY thing it does is interface between java and the library above. It doesn't impleent business logic nor work flow.

  • Memory leak in JSpinner implementation (maybe others?)

    Hi,
    I am developing an application using Java and Swing, and have run into some problems with memory leaks. After examining the source code and making an example program (provided below), I can only come to the conclusion that there is a bug in the implementation of JSpinner in Sun Java 1.6.0_03.
    If one uses a custom model with the JSpinner, it attaches itself as a listener to the model. However, it never removes the listening connection, even if the model is changed. This causes the JSpinner to be kept in memory as long as the model exists, even if all other references to the component have been removed.
    An example program is available at http://eddie.dy.fi/~sampo/ModelTest.java . It is a simple swing program that has the JSpinner and two buttons, the first of which writes to stdout the listeners of the original model and the second changes the spinner model to a newly-created model. A sample output is below:
    Running on 1.6.0_03 from Sun Microsystems Inc.
    Listeners before connecting to JSpinner:
      Model value is 0, 0 listeners connected:
    Listeners after connecting to JSpinner:
      Model value is 0, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971ad
    Listeners now:
      Model value is 8, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971ad
    Changing spinner model.
    Listeners now:
      Model value is 8, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971adThis shows that even though the model of the JSpinner has been changed, it still listens to the original model. I haven't looked at other components whether they retain connections to the old models as well.
    In my case, I have an adaptor-model which provides a SpinnerModel interface to the actual data. The adaptor is implemented so that it listens to the underlying model only when it itself is being listened to. If the JComponents using the model were to remove the listening connections, it, too, would be automatically garbage-collected. However, since JSpinner does not remove the connections, the adaptor also continues to listen to the underlying model, and neither can be garbage-collected.
    All in all, the listener-connections seem to be a very easy place to make memory leaks in Java and especially in Swing. However, as I see it, it would be a simple matter to make everything work automatically with one simple rule: Listen to the models only when necessary.
    If a component is hidden (or alternatively has no contact to a parent JFrame or equivalent), it does not need to listen to the model and should remove the connections. When the component is again set visible (or connected to a frame) it can re-add the connections and re-read the current model values just as it does when initializing the component. Similarly, any adaptor-models should listen to the underlying model only when it itself is being listened to.
    If the components were implemented in this way, one could simply remove a component from the frame and throw it away, and automatically any listener-connections will be removed and it can be garbage-collected. Similarly any adaptor-models are collected when they are no longer in use.
    Changing the API implementation in this way would not require any changes to applications, as the only thing that changes are the listener-connections. Currently used separate connection-removing methods should still work, though they would be unnecessary any more. The API would look exactly the same from the view of an application programmer, only that she would not need to care about remnant listening connections. (As far as I can tell, the current API specification would allow the API to be implemented as described above, but it should of course require it to be implemented in such a way.)
    Am I missing something, or is there some valid reason why the API is not implemented like this?
    PS. I'm new to these forums, so if there is a better place to post these reports, please tell me. Thanks.

    Another cognition: It's the following code, that causes the memory to be accumulated:
    obj = m_orb.resolve_initial_references("NameService");
    ctx = NamingContextExtHelper.narrow(obj);For the first 4 calls to this code the memory usage of the nameservice is unchanged. From the 5th to the 8th call, it's increased by approx. 10KB per call. And thenceforward (beginning with the 9th call) it's increasing by approx. 10MB.
    What's going wrong here?

  • Memory Leak In DataService

    Hi All,
          I had posted this query to couple of other groups ..I am still struglling with this issue..Hope someone  will  help me out here
          I have  very basic application which uses  DataSerives over RTMP channel  to populate dataGrid , I have not used any  user defined component.
    This application has got LOAD data and Remove data  Button just to simulate the actual application
    What happens , when I click on LOAD data , It  loads the data from server(JBOSS) then I Remove all the data and force the GC to run
    If I continuously keep loading and removing the  data ,  memory goes up every time and after some times It reaches to threshold and  finally crashes the Browser.
    In actual application as soon as user logs in a dedicated DS destination is created..
        private function createDestination(destName:String):void{
                 var remoteService:RemoteObject = new RemoteObject("DestinationManager");
                 remoteService.addEventListener(ResultEvent.RESULT, resultHandler,false,0,true);
                 var operation:AbstractOperation = remoteService.getOperation("createDestination");
                 operation.send(destName);
                 var cs:ChannelSet = new ChannelSet();
                 var rtmpChannel:RTMPChannel = ServerConfig.getChannel("my-rtmp") as  RTMPChannel;
                 cs.addChannel(rtmpChannel);
                 tradeService = new DataService() ;
                 tradeService.destination=destName;
                 tradeService.channelSet = cs;  
    Now when user hits on Load data button to load the trade data ...
       public function loadData():void
             var remoteService:RemoteObject  = new RemoteObject("filterRemoteVO");
             var operation:AbstractOperation = remoteService.getOperation("loadData");
             tradeService.fill(tradeCollection);
             operation.send(rowData.text ,GUIID);
             tradeList.dataProvider = tradeCollection;
    Remove Data  hit I clean all the resource and released collection :-
          public  function  removeAll():void{
             if(tradeList.dataProvider){
                  tradeCollection.source = new Array();
                  tradeList.dataProvider.source = new Array();
                  tradeList.dataProvider = null;
                tradeService.release();
               tradeService.releaseCollection(tradeCollection);
              tradeService.channelSet.disconnectAll();
              tradeService.disconnect();
               tradeService.logout();
               System.gc();
    Except these 3 function I don't have any code which could cause memory leak.
    I m using
    LCDS 2.5
    Flex 3.0
    JBoss4.2
    Please see the mxml file below   , If  possible please have a look at it , I might  not be using dataSerice API correctly.
    I have been trying to solve this leak for last two week , I really need help from you guys.
    My client has already evaluating other contemporary technology because of this memory issue.
    I have also created scalled down war file which can be deployed on any  java application server.
    Any help will greatly be appreciated
    Regards,
    Dam
    ######################## MXML##########################
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
          creationComplete="init();" height="100%" width="100%"
         >
         <mx:Script >
         <![CDATA[
             import mx.containers.GridRow;
               import mx.utils.Base64Decoder;
             import mx.utils.StringUtil;
                import mx.events.CollectionEvent;
             import mx.formatters.Formatter;
             import mx.events.ResizeEvent;
             import mx.controls.DataGrid;
             import mx.effects.Fade;
             import mx.events.DataGridEvent;
             import mx.utils.ObjectUtil;
             import mx.events.ScrollEvent;
           import mx.formatters.DateFormatter;
           import mx.events.ListEvent;
           import mx.data.mxml.DataService;
           import mx.messaging.config.ServerConfig;
           import mx.messaging.channels.RTMPChannel;
           import mx.messaging.ChannelSet;
           import mx.rpc.AbstractOperation;
           import mx.rpc.remoting.RemoteObject;
           import mx.collections.ArrayCollection;
           import mx.controls.Alert;
           import mx.rpc.events.ResultEvent;
           import mx.messaging.messages.*;
           import mx.messaging.events.*;
           import mx.controls.Alert;
            private var GUIID:String;
            private var lastRollOverIndex:Number;
            public var tradeService:DataService=null;
            public var tradeCollection:ArrayCollection = new ArrayCollection();
           public var flag:Boolean = false;
            private function init():void {
               var guiId:String ="TEST";
                createDestination(GUIID);
            public function getData():void{
                 // memory.text =""+ ((System.totalMemory / 1024)/1024);
            public function releaseDataServices():void {
               //  tradeService.fill(null);
                    tradeService.release();
                   // tradeService.releaseCollection(tradeCollection);
                   tradeService.channelSet.disconnectAll();
                    tradeService.disconnect();
                    tradeService.logout();
                    //tradeService.dataStore = null;
                    /*Function for creating destination*/
              private function createDestination(destName:String):void{
                 var remoteService:RemoteObject = new RemoteObject("DestinationManager");
                 remoteService.addEventListener(ResultEvent.RESULT, resultHandler,false,0,true);
                 var operation:AbstractOperation = remoteService.getOperation("createDestination");
                 operation.send(destName);
                 var cs:ChannelSet = new ChannelSet();
                 var rtmpChannel:RTMPChannel = ServerConfig.getChannel("my-rtmp") as RTMPChannel;
                 cs.addChannel(rtmpChannel);
                 tradeService = new DataService() ;
                 tradeService.destination=destName;
                 tradeService.channelSet = cs;  
             //This function calls dataservice fill method depending on wheather destination is created or not
            private function resultHandler(event:ResultEvent):void{
               //call data service as destination is created successfully
                var status:Boolean = event.result as Boolean
               // Alert.show("status="+status);
                if(status){
                 getData();
               else{
                   //TODO report error to MATS app  
          public  function  removeAll():void{
             if(tradeList.dataProvider){
                  tradeCollection.source = new Array();
                  tradeList.dataProvider.source = new Array();
                  tradeList.dataProvider = null;
                tradeService.release();
               // tradeService.releaseCollection(tradeCollection);
              tradeService.channelSet.disconnectAll();
              tradeService.disconnect();
               tradeService.logout();
               System.gc();
           public function loadData():void
             var remoteService:RemoteObject  = new RemoteObject("filterRemoteVO");
             var operation:AbstractOperation = remoteService.getOperation("loadData");
             tradeService.fill(tradeCollection);
             operation.send(rowData.text ,GUIID);
             tradeList.dataProvider = tradeCollection;
       ]]>
    </mx:Script>
          <mx:DataGrid   id="tradeList"
                 initialize="tradeList.dataProvider = tradeCollection" horizontalScrollPolicy="auto"
                   height="659" x="0" y="84">
                <mx:columns>
                     <mx:DataGridColumn  headerText="Security Description" dataField="securityDesc"
                      />
                     <mx:DataGridColumn  headerText="B/S" dataField="transactionType"
                     />
                     <mx:DataGridColumn  headerText="Amount" dataField="amount"
                     />
                     <mx:DataGridColumn  headerText="Price Text" dataField="priceText"
                     />
                     <mx:DataGridColumn  headerText="Counterparty" dataField="counterParty"
                     />
                     <mx:DataGridColumn  headerText="Trade Date" dataField="tradeDate"
                     />
                     <mx:DataGridColumn  headerText="Settle Date" dataField="settleDate"
                     />
                     <mx:DataGridColumn  headerText="Trade Status" dataField="tradeStatusId"
                     />
                     <mx:DataGridColumn  headerText="Trader" dataField="trader"
                     />
                     <mx:DataGridColumn  headerText="Salesperson" dataField="salesperson"
                     />
                     <mx:DataGridColumn  headerText="Ticket Number" dataField="tradeNumber"
                     />
                     <mx:DataGridColumn  headerText="Entry Date" dataField="tradeTime"
                     />
                     <mx:DataGridColumn  headerText="Cancel Date" dataField="cancelDate"
                     />
                     <mx:DataGridColumn  headerText="Cancel Time" dataField="cancelTime"
                     />
                 </mx:columns>
              </mx:DataGrid >
             <mx:Grid x="149" y="23" width="995">
                     <mx:GridRow width="100%" height="100%">
                                <mx:GridItem width="100%" height="100%">
                                     <mx:Label text="Enter No of obejcts"   width="111"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:TextInput name="row" id="rowData"   width="97"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:Button  label="Load Data" click='loadData()'/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:Button  label="removeAll" click='removeAll()'/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:Label text="Total Memory"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:TextInput text="Total Memory" id="memory"   width="97"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:Label text="Grid Row Count"/>
                             </mx:GridItem>
                             <mx:GridItem width="100%" height="100%">
                                     <mx:TextInput name="GridRowCountN" id="GridRowCount"   width="97"/>
                             </mx:GridItem>
                     </mx:GridRow>
             </mx:Grid>
    </mx:Application>

    Hi Natasha,
    Sorry for late reply.
          I tried your suggestion but It did not help to release memory. Actully,this app contains only one event handler which is for remote method call , I dont think this could cause any memory leak.
    Profiling session reveals that It is the issue of DataService class.I dont know How do I convince  Adobe to investigate this issue.
    Regards,
    Dharmendra

  • Memory Leak in OCCI library

    Hi,
    I am using OCCI library and oracle XE. There is noticeable amount memory leak in CreateEnvironment and CreateConneaction API funtions. I am not sure whether it is known problem. If the oracle server is down my application has to retry several times using these above mentioned methods and memory grows significantly.
    Here is a simple program which creates environment and create connection and terminates immediately in a while loop. We see huge memory leak.
    I have downloaded occi_gcc343,
    Here is sample program which i tried.
    #include <iostream>
    #include <occi.h>
    using namespace oracle::occi;
    using namespace std;
    int main(int argc, char* argv[])
    Environment *env = NULL;
    Connection *conn = NULL;
    while(1)
    Environment *env  = Environment::createEnvironment(Environment::DEFAULT);
    Connection *conn = env->createConnection ("cvo","cvo123","XE");
    sleep(3);
    env->terminateConnection (conn);
    Environment::terminateEnvironment(env);
    getchar();
    return 0;
    Please let me know if there is any patch available or is there anyway overcome from this problem.
    Thanks,

    Can't really speak about the memory leak issue that you suspect with the library, but do note that that you do not need to terminate the environment in a reconnect loop. terminateEnvironment is meant to be called at program exit, not disconnect. This may help with the memory issue somewhat.

  • Memory leak with CGImageSourceCreateThumbnailAtIndex

    After creating a thumbnail with CGImageSourceCreateThumbnailAtIndex, CGImageRelease doesn't seem to work!? I am rendering full-size thumbnails of PDF pages, and this just leaks memory:
    void memLeakTest(CFStringRef sourcePath) {
    printf("Running memLeakTest...
    CFURLRef url = CFURLCreateWithString(NULL, sourcePath, NULL);
    CGImageSourceRef imageSource = CGImageSourceCreateWithURL(url, NULL);
    CFStringRef keys[3];
    CFTypeRef values[3];
    int n=0;
    keys[n] = kCGImageSourceCreateThumbnailFromImageAlways;
    values[n++] = kCFBooleanTrue; //If I set this to false, there is no leak, but I need the thumbnails
    keys[n] = kCGImageSourceCreateThumbnailWithTransform;
    values[n++] = kCFBooleanTrue;
    keys[n] = kCGImageSourceShouldCache;
    values[n++] = kCFBooleanFalse;
    CFDictionaryRef options;
    options = CFDictionaryCreate(kCFAllocatorDefault, (const void **)keys, values, n, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
    CGImageRef image = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options);
    CFRelease( imageSource );
    CGImageRelease( image ); //Doesn't seem to have any effect. Memory continues to balloon.
    CFRelease( url );
    int main (int argc, const char * argv[]) {
    CFStringRef pathUrl = CFSTR("file:/path/to/a/big.pdf");
    while( true ) {
    memLeakTest( pathUrl );
    if( n < maxPages ) sleep(5); //Wait 5 seconds
    return 0;

    I was able to fix the memory leak using the following code:
    void memLeakTest(CFStringRef sourcePath) {
    printf("Running memLeakTest...
    CFURLRef url = CFURLCreateWithString(NULL, sourcePath, NULL);
    CFStringRef keys[10];
    CFTypeRef values[10];
    int n=0;
    //keys[n] = kCGImageSourceCreateThumbnailFromImageIfAbsent;
    //values[n++] = kCFBooleanTrue;
    keys[n] = kCGImageSourceCreateThumbnailFromImageAlways;
    values[n++] = kCFBooleanTrue;
    keys[n] = kCGImageSourceCreateThumbnailWithTransform;
    values[n++] = kCFBooleanTrue;
    keys[n] = kCGImageSourceShouldCache;
    values[n++] = kCFBooleanFalse;
    CFDictionaryRef options;
    options = CFDictionaryCreate(kCFAllocatorDefault, (const void **)keys, values, n,
    &kCFTypeDictionaryKeyCallBacks,
    &kCFTypeDictionaryValueCallBacks);
    //CGImageSourceRef imageSource = CGImageSourceCreateWithURL(url, options);
    NSImage* imageFile = [[NSImage alloc] initByReferencingURL: (NSURL *)url];
    NSData * data = [imageFile TIFFRepresentation];
    CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)data, options);
    CGImageRef image = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options);
    CFRelease( image );
    CFRelease( imageSource );
    [imageFile release];
    CFRelease( options );
    CFRelease( url );
    There are a number of different graphics APIs you could use. I'm no expert in any of them, so I used the simple ones. The above code requires both Objective-C and an autorelease pool, but I'm sure you could use different functions to remove those requirements.

  • Memory leak with multi-threaded environment

    When starting an environment with the THREADED_MUTEXED
    or THREADED_UNMUTEXED mode parameter, the oracle OCCI API
    has a memory leak. This can be demonstrated by modifying
    the "occidml.cpp" demo program as follows:
    Replace line 26:
    env = Environment::createEnvironment (Environment::DEFAULT);
    with
    env = Environment::createEnvironment (Environment::THREADED_MUTEXED);
    And replace line 164:
    demo->displayAllRows();
    with
    for (int ii=0; ii<10000; ii++) demo->displayAllRows();
    Recompile and run the program, and use "top" to see the
    size of the process's used memory continually increase
    unbounded.
    I am using the Oracle 9.2.0.1.0 database on Linux,
    gcc version 2.96.
    Is anyone aware of a fix for this problem?

    Yeah, I did suffer from this.
    If possible , you can switch to using OCCI on Oracle 10G client , you will find no memory leak issue anymore.
    Another issue is that OCCI is using default connection-blocking implementation , if a DB connection is blocked by accident just like plugging out the network link, you can not get any timeout or connection closed indications. You must implement your own OCCI connection timeout strategy, and you must kill the thread/process you are using.

  • Memory leak with CryptGetProvParam

    I suspect there is a memory leak in the function CryptGetProvParam. I made a Win32Console app in Visual Studio 2008 to recreate the problem. With the example app running it is possible to use Task Manager to see the memory usage of the .exe steadily increase
    over time.
    I called the app TestSecurityDescriptorWin32Console. Below I have pasted the contents of TestSecurityDescriptorWin32Console.cpp.
    I am looking to verify that the problem is with the CryptGetProvParam function, and if this is the case then to get the bug fixed.
    Thank you for any help
    // TestSecurityDescriptorWin32Console.cpp : Defines the entry point for the console application.
    #include "stdafx.h"
    #include <windows.h>
    HCRYPTPROV GetContext();
    void ModifyCryptProvSecurity(HCRYPTPROV hProv);
    int _tmain(int argc, _TCHAR* argv[])
    DWORD dwSDLen = 0;
    HCRYPTPROV hProv = GetContext();
    // get dwSDLen
    printf("First CryptGetProvParam: %d\n",CryptGetProvParam(hProv,PP_KEYSET_SEC_DESCR, NULL, &dwSDLen, DACL_SECURITY_INFORMATION));
    while (1) {
    BYTE* pbSD = (BYTE*)LocalAlloc(LHND,dwSDLen);
    PSECURITY_DESCRIPTOR
    pSD = (PSECURITY_DESCRIPTOR)pbSD;
    InitializeSecurityDescriptor(pSD,SECURITY_DESCRIPTOR_REVISION);
    // make pbSD size dwSDLen
    printf("Second CryptGetProvParam: %d\n",CryptGetProvParam(hProv,PP_KEYSET_SEC_DESCR, pbSD, &dwSDLen, DACL_SECURITY_INFORMATION));
    SECURITY_DESCRIPTOR*
    pSecurityDescriptor = (SECURITY_DESCRIPTOR*)pbSD;
    if (pSecurityDescriptor->Owner != NULL) FreeSid(pSecurityDescriptor->Owner);
    if (pSecurityDescriptor->Group != NULL) FreeSid(pSecurityDescriptor->Group);
    if (pSecurityDescriptor->Sacl != NULL) LocalFree(pSecurityDescriptor->Sacl);
    if (pSecurityDescriptor->Dacl != NULL) LocalFree(pSecurityDescriptor->Dacl);
    LocalFree(pbSD);
    Sleep(100);
    return 0;
    HCRYPTPROV GetContext()
    HCRYPTPROV hProv = NULL;
    HCRYPTKEY hKey = NULL;
        CHAR szPPName[100];
        DWORD dwPPNameLen = 100;
        CHAR szPPContainer[100];
        DWORD dwPPContainerLen = 100;
        // Attempt to acquire a handle to the default key container.
        if (CryptAcquireContext(
    &hProv,
    NULL,
    MS_DEF_PROV,
    PROV_RSA_FULL,
    CRYPT_MACHINE_KEYSET))
    printf("Opened default key container for crypto usage");
    else
    // Some sort of error occured...
    printf("(Allowable) Error acquiring default key container for crypto usage - ");
    // .. try to create default key container.
    if(CryptAcquireContext(
    &hProv,
    NULL,
    MS_DEF_PROV,
    PROV_RSA_FULL,
    CRYPT_MACHINE_KEYSET | CRYPT_NEWKEYSET))
    printf("Created key container for crypto usage");
    else
    printf("Error Creating key container for crypto usage - ");
    return (NULL);
    // Get CSP name.
    if(CryptGetProvParam(
    hProv,
    PP_NAME,
    (BYTE *)szPPName,
    &dwPPNameLen,
    0))
    printf("Key CSP name is '%s'",szPPName);
    else
    // Error getting key container name.
    printf("Failed to retrieve CSP name - ");
    // Get name of key container.
    if(CryptGetProvParam(
    hProv,
    PP_CONTAINER,
    (BYTE *)szPPContainer,
    &dwPPContainerLen,
    0))
    printf("Key container provider name is '%s'",szPPContainer);
    else
    // Error getting key container name.
    printf("Failed to retrieve key container name - \n");
    return hProv;

    "BYTE* pbSD = (BYTE*)LocalAlloc(LHND,dwSDLen);"
    LHND? It's surprising that this doesn't crash the program. Use LPTR.
    More generally, stay away from LocalAlloc/LocalFree, use malloc/new/HeapAlloc. Use LocalAlloc only if the API you're working with specifically requires LocalAlloc, that's rare.

  • Memory leak in ldap_parse_ds_event

    Hi,
    I'm doing some development with the eDir LDAP event API and noticed some
    memory leakage. Valgrind points the finger at ldap_parse_ds_event:
    ==32146== 220 bytes in 5 blocks are definitely lost in loss record 4 of 5
    ==32146== at 0x401CCA0: calloc (vg_replace_malloc.c:279)
    ==32146== by 0x404D995: ber_memcalloc (memory.c:293)
    ==32146== by 0x404CEEB: ber_alloc_t (io.c:271)
    ==32146== by 0x404CF84: ber_dup (io.c:307)
    ==32146== by 0x40520DB: ldap_parse_intermediate (extended.c:374)
    ==32146== by 0x4174176: ldap_parse_ds_event
    (/home/n4u_cm/ccm_wa/idc_n4u/cldap~sdk_2007June/cldap/nldapx/extensions/client/src/events.c:2325)
    ==32146== by 0x804AD94: main (idmtrace.c:839)
    Is anybody from Novell labs about that can fix this? 44 bytes per message
    received may not sound like a lot, but the code is dealing with trace
    messages so it gets large rather quickly. The problem exists in the latest
    June 2007 libraries, as well as the LDAP libraries released in eDir 8.7.3.9
    and 8.8.1.
    Thanks,
    Steve

    Hi Steve,
    It would be very nice if you can supply me with sample code to reproduce
    memory leak. I've no Linux box now but i'll try to reproduce the same
    problem on NetWare platform. Also i need brief description of eDir event
    to be monitored.
    Best Regards,
    Andrey Karyagin
    ABG Card Technology
    Software Development Department
    [email protected] wrote:
    > Hi,
    > I'm doing some development with the eDir LDAP event API and noticed some
    > memory leakage. Valgrind points the finger at ldap_parse_ds_event:
    >
    > ==32146== 220 bytes in 5 blocks are definitely lost in loss record 4 of 5
    > ==32146== at 0x401CCA0: calloc (vg_replace_malloc.c:279)
    > ==32146== by 0x404D995: ber_memcalloc (memory.c:293)
    > ==32146== by 0x404CEEB: ber_alloc_t (io.c:271)
    > ==32146== by 0x404CF84: ber_dup (io.c:307)
    > ==32146== by 0x40520DB: ldap_parse_intermediate (extended.c:374)
    > ==32146== by 0x4174176: ldap_parse_ds_event
    > (/home/n4u_cm/ccm_wa/idc_n4u/cldap~sdk_2007June/cldap/nldapx/extensions/client/src/events.c:2325)
    > ==32146== by 0x804AD94: main (idmtrace.c:839)
    >
    > Is anybody from Novell labs about that can fix this? 44 bytes per message
    > received may not sound like a lot, but the code is dealing with trace
    > messages so it gets large rather quickly. The problem exists in the latest
    > June 2007 libraries, as well as the LDAP libraries released in eDir 8.7.3.9
    > and 8.8.1.
    >
    > Thanks,
    > Steve

  • Memory Leak in NK.exe

    Hi All,
    OS: Windows Embedded Compact 7 with updates till Feb 2015.
    Hardware: AM335x based 
    Applications running: one serial port application and one tcpclient and tcpserver apps. all are managed (C#) applications
    I am facing memory leak issue with our headless device. 
    When I connect the device to LAN network, memory usage keep increases and after few hour (some times <1 hour, some times 4-5 hour) devices go to hang state due to low memory.
    I also tried to run the resource leak detector and found
           1. NK.exe heap is increasing
           2. on startup : API Handle Count = 4118, DuplicatedHandle - Count : 4,082, Size : 4,082 bytes
    After few minutes: APIHandle - Count : 49,172, Size : 49,172 bytes, DuplicatedHandle - Count : 48,810, Size : 48,810 bytes
    NK.exe heap increases as available RAM decreases.
    our application heap is constant only. please find below memory snapshots taken by devhealth.
     1. On device start up after all apps started
    2. After 1 hour of device running. - refer attachment
     where exactly might be this leak, any Guess?
    Thank you...
    rakesh

    Hi tomleijen,
    Thanks for your suggestions.
    Even we tried without any user apps, then also we found ~1 MB increase in NK.exe heap every 30-40 min.
    we have 2 images 1. with all WEC7 updates (Till feb 2015) and 2. without any of the WEC7 updates
    almost same problem we are facing with both images.
    rakesh

  • Memory leak in DriverManager.registerDriver()

    I am finding that when a driver is registered with the java.sql.DriverManager multiple times it runs the JVM out of memory (crashing it). I tested using the last three versions of the JDBC (thin) drivers through 8.1.7, using both Sun JDK 1.2.2 and 1.3 (final) on Linux. It takes only a 1-2 minutes to use all the memory. The following code should be sufficient to reproduce the issue:
    import java.sql.*;
    public class ClassLd {
    public static void main(String[] args) {
    try {
    while (1==1) {
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    } catch (Exception e) {
    System.out.println("Error");
    e.printStackTrace();
    This produces the following error:
    Exception in thread "main" java.lang.OutOfMemoryError
    <<no stack trace available>>
    The documentation clearly states that "You register the driver only once in
    your Java application." However, a memory leak is still a nasty bug -- even if that line of documentation was skimmed.
    Thanks,
    slag
    [email protected]

    If you are concerned about registering the same driver multiple times then you should use the DriverManager.deregisterDriver() API to clean up.
    In your program the DriverManager has no choice but to hold on to all of the driver objects that you are creating and registering.

  • Memory leak within FOProcessor class

    Hi all,
    I'm trying to use the XML Publisher API (5.6.2 and 5.6.3) to generate PDF documents from XSL templates and XML data in a J2EE environment (Jboss 4.0.5) with Struts but a memory leak occurs.
    It seems not to be a multithreading issue because the leak is there even if the PDF documents are generated one by one.
    I made many tests to isolate the leak and I have simplified my code as much as possible: it seems to happen within the FOProcessor class.
    One of the tests generates 4,500 PDF documents (one at a time) from an XML file (3 KB) and an XSL file (74 KB with blanks). Nothing else is done with the Jboss server during this test. The XSL file was created before the test from a RTF file with XML Publisher. The memory leak is around 70 KB for each PDF document (around 300 MB for the whole test).
    As you can see below from the heap histogram (taken at end of test after a full garbage collection) it seems that the XSL and XML elements/attributes are not released (and thus never garbage collected).
    Did I miss something or is there an actual problem with the XML/XSL parsing within the XML Publisher API?
    Thanks for your help.

    Object Histogram:
    Size    Count     Class description
    131376968 2353450 java.lang.Object[]
    60389464 937300  char[]
    48260304 335141  oracle.xml.parser.v2.XSLResultElement
    35690000 2230625 oracle.xml.util.FastVector
    24127104 1005296 java.lang.String
    16539120 413478  oracle.xml.parser.v2.XSLNode$AttrValueTmpl
    14757064 128058  int[]
    13348768 417149  java.lang.ref.Finalizer
    12701776 102220  * ConstMethodKlass
    12544808 23433   byte[]
    12204080 108965  oracle.xml.parser.v2.XSLText
    8344600 86584   java.util.Hashtable$Entry[]
    7363768 102220  * MethodKlass
    5592784 138700  * SymbolKlass
    5362256 335141  oracle.xml.parser.v2.XSLAttributeSet[]
    5267336 8135    * ConstantPoolKlass
    5234016 163563  java.util.TreeMap$Entry
    5121744 213406  java.util.Hashtable$Entry
    4900480 61256   oracle.xml.parser.v2.XPathStep
    4087120 51089   java.lang.reflect.Method
    3823216 40276   java.util.HashMap$Entry[]
    3524696 8135    * InstanceKlassKlass
    3378000 84450   java.util.Hashtable
    3064872 127703  java.util.HashMap$Entry
    2971904 6880    * ConstantPoolCacheKlass
    2968560 26505   oracle.xml.parser.v2.XSLValueOf
    2770656 24738   oracle.xml.parser.v2.XSLVariable
    2167520 27094   oracle.xml.parser.v2.XPathFunctionCall
    1880088 33573   oracle.xml.parser.v2.PathExpr
    1726360 61482   java.lang.String[]
    1573720 39343   java.util.HashMap
    1476576 30762   oracle.xml.parser.v2.XSLExprValue
    1460840 36521   java.util.TreeMap
    1319360 23560   oracle.xml.parser.v2.XPathConstantExpr
    1054976 16484   org.jboss.mx.server.InvocationContext
    1001264 3546    * MethodDataKlass
    887424  11049   short[]
    835680  8705    java.lang.Class
    830208  25944   oracle.xml.util.NSNameImpl
    705816  29409   java.util.ArrayList
    684152  4501    org.jboss.web.tomcat.tc5.session.SessionBasedClusteredSession
    670288  14071   java.lang.Object[]
    640832  10013   oracle.xml.parser.v2.XPathVarReference
    561056  35066   javax.management.modelmbean.DescriptorSupport
    556272  23178   EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap$Entry
    552984  30451   java.lang.Class[]
    494760  2945    oracle.xml.parser.v2.XSLTemplate
    480792  20033   antlr.ANTLRHashString
    442576  27661   java.lang.Integer
    432096  4501    org.jboss.web.tomcat.statistics.ReplicationStatistics$TimeStatistic
    429040  10726   org.hibernate.hql.ast.tree.Node
    369880  9247    javax.management.modelmbean.ModelMBeanOperationInfo
    312384  19524   java.util.TreeMap$3
    305368  5453    java.net.URL
    287392  8981    org.jboss.mx.interceptor.ReflectedDispatcher
    259264  338     EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap$Entry[]
    252280  4505    org.jboss.cache.lock.ReadWriteLockWithUpgrade
    238600  5965    org.jboss.mx.interceptor.PersistenceInterceptor
    238600  5965    org.jboss.mx.interceptor.AttributeDispatcher
    236616  9859    org.jboss.mx.server.AbstractMBeanInvoker$OperationKey
    219776  3434    java.lang.reflect.Constructor
    206880  6465    javax.management.modelmbean.ModelMBeanAttributeInfo
    193168  2259    java.lang.reflect.Method[]
    173184  5412    java.lang.ref.SoftReference
    164920  589     oracle.xml.parser.v2.XSLStylesheet
    164464  541     * ObjArrayKlassKlass
    152832  6368    org.dom4j.tree.DefaultAttribute
    149472  2076    java.lang.reflect.Field
    144160  4505    org.jboss.cache.Node
    143160  5965    org.jboss.mx.interceptor.ModelMBeanAttributeInterceptor
    140600  3515    org.apache.xerces.dom.DeferredTextImpl
    140224  2740    javax.management.modelmbean.ModelMBeanAttributeInfo[]
    139056  7658    boolean[]
    134664  3359    java.lang.String[][]
    131936  1178    oracle.xml.parser.v2.XSLCondition
    131936  1178    oracle.xml.parser.v2.XSLForEach
    129072  2668    javax.management.modelmbean.ModelMBeanOperationInfo[]
    128952  5373    EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap$Entry
    124776  1733    org.hibernate.hql.ast.tree.IdentNode
    115200  1800    javax.management.modelmbean.ModelMBeanInfoSupport
    113088  2356    oracle.xml.parser.v2.AdditiveExpr
    109416  4559    java.beans.PropertyChangeSupport
    108960  1135    java.io.ObjectStreamClass
    108120  4505    org.jboss.cache.lock.IdentityLock
    105864  345     long[]
    98752   3086    java.io.ObjectStreamClass$WeakClassKey
    97968   4082    java.util.Vector
    96672   2014    java.util.Properties
    94240   589     oracle.xml.parser.v2.XSLOutput
    90072   3753    javax.management.ObjectName$Property
    87432   3643    javax.management.MBeanParameterInfo
    82368   858     org.hibernate.hql.ast.tree.DotNode
    81248   5078    java.lang.Long
    78656   1229    org.hibernate.mapping.Column
    77664   4854    java.util.Collections$SynchronizedSet
    77448   3227    java.util.LinkedList$Entry
    73824   769     org.jboss.mx.modelmbean.XMBean
    73536   4596    java.util.Hashtable$KeySet
    72144   4509    EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArraySet
    72144   4509    EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArrayList
    72144   4509    org.jboss.cache.Fqn
    72080   4505    org.jboss.cache.lock.ReadWriteLockWithUpgrade$WriterLock
    72080   4505    org.jboss.cache.lock.LockStrategyRepeatableRead
    72080   4505    org.jboss.cache.lock.ReadWriteLockWithUpgrade$ReaderLock
    72080   4505    org.jboss.cache.lock.LockMap
    72016   4501    org.apache.catalina.session.StandardSessionFacade
    71776   4486    java.io.FileDescriptor
    70680   589     oracle.xml.parser.v2.XSLCallTemplate
    70680   589     oracle.xml.parser.v2.XSLApplyTemplates
    70224   154     org.hibernate.persister.entity.SingleTableEntityPersister
    68296   2774    javax.management.ObjectName$Property[]
    68160   1065    org.apache.xerces.dom.DeferredElementNSImpl
    67760   770     org.hibernate.loader.entity.EntityLoader
    66992   19      EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap$Entry[]
    65968   1178    oracle.xml.parser.v2.XPathFilterExpr
    65968   589     oracle.xml.parser.v2.XMLUTF8Reader
    64432   4027    java.util.HashSet
    63648   1326    oracle.xml.parser.v2.XMLNode[]
    63440   1586    org.hibernate.loader.DefaultEntityAliases
    61256   589     oracle.xml.parser.v2.XSLNode
    61256   589     oracle.xml.parser.v2.XMLReader
    60816   2534    org.apache.xerces.xni.QName
    57360   478     org.hibernate.hql.ast.tree.FromElement
    56976   1187    org.hibernate.mapping.Property
    56544   1178    oracle.xml.parser.v2.XSLNodeSetExpr
    56544   1178    oracle.xml.parser.v2.MultiplicativeExpr
    56544   1178    oracle.xml.parser.v2.EqualExpr
    54384   618     oracle.xml.parser.v2.XMLError
    49392   2783    javax.management.MBeanParameterInfo[]
    47648   1489    java.util.LinkedHashMap$Entry
    47120   589     oracle.xml.parser.v2.XMLByteReader[]
    ...

  • Possible memory leak in C++ code

    Hello,
    I have a Java application that calls through JNI, functions in a C++ dll that use the GroupWise API (COM based). After the application creates a number of accounts in GroupWise the memory footprint of the java.exe process reaches ~1.5GB of RAM on a 32 bit Windows OS. After reaching this value, the C++ code no longer works, meaning that connecting to GroupWise fails. If I restart the application at this point everything starts to work until it reached ~1.5 GB again.
    I am suspecting that the problem might be caused by a memory leak. I have taken a dump of the java process with jmap and analyzed it with jhat. If I have not released an object in C++ code, would this object be visible in the dump i took of the java.exe process? The biggest consumer from what i have seen in the dump is class [B      20353-instances      33259261-bytes.
    Has anyone else tried to track a memory leak in a JNI application? How did you achive this task, what tools did you use?
    Thank you,
    Ionut Marin.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Has anyone else tried to track a memory leak in a JNI application? How did you achive this task, what tools did you use?You write a library in C/C++ only which does NOT use JNI which implements the functionality you want to achieve in your java application.
    You write a wrapper for that which excercises it completely including be able to run it in a loaded state.
    Then you buy/find a C/C++ profiling tool and run it on the wrapper.
    You write you JNI code such that the ONLY thing it does is interface between java and the library above. It doesn't impleent business logic nor work flow.

Maybe you are looking for

  • Transfer Open Item documents to Another Client

    Hi sirs, 5 Companies are being merged, we already have setup a new company on separate server, abap requirement is that all Open items GL/VENDOR/CUSTOMER should be transferred to the new server / new company. They already mapped the required fields s

  • DBMS_Space

    I have a partioned table named bUsers and name of partion is Partion1. How can I use DBMS_Space to get information. Please guide me. Regards, null

  • How can I get the phone to recognize mini SD Card?

    I have a 32G Sandisk SD Card in the G4 mini but one day the phone said the card was blank and unsupported.  I purchased another SD Card and installed it however the phone does not recognize that I have an SD card.  When I try and save music or pics t

  • Error with HelloWorldApp.Java

    cannot read: HelloWorldApp.java from the tutorial. I use a string to get to the javac file and i still get the message. The file is a notepad file.

  • SURRENDER HELP? Have Toshiba PC Wind 8 Touch and desk feature 32 and 64, 2/19/2014 ???

    In OS (:C)  Have stupid amount of files that are not in proper places Run Win IE 10 IE browser and bing on touch screen for engine and google.com on the desktop of PC. Looks like files were torn apart, then new folders created. (Diff Areas)  check pr