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-unsubscr...@axis.apache.org
For additional commands, e-mail: c-user-h...@axis.apache.org