axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Francisco Suarez Sola <i...@noao.edu>
Subject adb client memory management
Date Thu, 28 Apr 2011 23:23:25 GMT
Hi,

Sorry for the long email. I have a simple client, see below code, that  
does a SOAP request to a SOAP service implemented in java. Freeing  
responseE, reqInfo and stub doesn't free everything but just about 1/3  
of the total memory allocated in the request. All documentation points  
to just freeing these three pointers. BTW the responses are big,  
typically 60000 rows with about 22 elements in each row. The memory  
footprint left is huge about 900MB.

  Any suggestions are most welcome.

    axis2_char_t * client_home  = NULL;
    axis2_char_t * endpoint_uri = "http://localhost:9090/services/InfoService 
";
    axis2_stub_t * stub         = NULL;
    /* ### */
    adb_Info_t             *reqInfo            = NULL;
    adb_InfoRequest_t      *query_in           = NULL;
    /* ### */

    if (axenv == NULL) {
      axenv = axutil_env_create_all(NULL, AXIS2_LOG_LEVEL_ERROR);
    }

/*
//made no difference
     axutil_property_t *property = axutil_property_create(axenv);
     axutil_property_set_scope(property, axenv, AXIS2_SCOPE_REQUEST);
*/

    client_home = AXIS2_GETENV("AXIS2C_HOME");
    if (!client_home)
      client_home = ".";

    stub = axis2_stub_create_InfoService(axenv, client_home,  
endpoint_uri);

    reqInfo  = adb_Info_create(axenv);
    query_in = adb_InfoRequest_create(axenv);

    adb_InfoRequestList_t *reqnumlist =  
adb_InfoRequestList_create(axenv);

    for (int j=0; j< reqn; j++) {
       adb_InfoRequestList_add_reqnum(reqnumlist,axenv,reqnums[j]);
    }

    adb_InfoRequest_set_reqnumlist(query_in,axenv,reqnumlist);

    adb_Info_set_request(reqInfo,axenv,query_in);

    adb_InfoResponseE0_t *responseE =  
axis2_stub_op_InfoService_Info(stub,axenv,reqInfo);

    adb_InfoResponse_t* response =  
adb_InfoResponseE0_get_response(responseE, axenv);

    if (responseE)
      adb_InfoResponseE0_free(responseE,axenv);

    if (reqInfo)
      adb_Info_free(reqInfo,axenv);

    if (stub)
      axis2_stub_free(stub, axenv);

Thanks

Igor


---------------------------------------------------------------------
To unsubscribe, e-mail: c-user-unsubscribe@axis.apache.org
For additional commands, e-mail: c-user-help@axis.apache.org


Mime
View raw message