Use MTOM or SwA to transfer 800 MB chunked XML data. Best place it at the server into a file and then use MTOM to catch it down to the client. The question with large SOAP/XML maybe OM (Axiom) models is always, how much data do you have to bring into memory to make your model work.
Also the archived AXIS2/C forums thread has some good notes on MTOM. Josef ------------- snipped of the archived mails --------------- You may find some answers here http://wso2.org/library/articles/sending-receiving-attachments-axis2-c <http://wso2.org/library/articles/sending-receiving-attachments-axis2-c> http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#mtom <http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#mtom> thanks, Dinesh Von: manoj dhyani [mailto:mdhy...@hotmail.com] Gesendet: Mittwoch, 13. Februar 2013 21:56 An: c-...@axis.apache.org; c-user@axis.apache.org Betreff: axis2_svc_client_send_receive taking lot of memory I am using Axis2c 1.6 for one of the webservice the response is huge, the response XML is around 800 MB while invoking this service from my Webservice Client which is using axis2c, the memory usage of th process goes to around 5 GB when axis2_svc_client_send_receive call is started is their any way to tune this ? any options etc that can set on the client side is their any way to stream the response to a file instead of caching in the memory, I do see a method to write to file (axiom_xml_writer_create), but that can be called after this call is done so that is not useful following is the code, other thing is I am calling all the requierd free functions, but even after that the process memory doesn't go down is this a bug? axiom_node_t * node = NULL; node = axis2_svc_client_send_receive(_wsf_service_client, _env, firstChild); if(node == NULL) { throw Error("Error"); } if (axis2_svc_client_get_last_response_has_fault(_wsf_service_client, _env)) { //handle fault } else { axis2_char_t* xmlreply = NULL; axiom_xml_writer_t *xml_writer = NULL; axiom_output_t* om_output = NULL; xml_writer = axiom_xml_writer_create_for_memory(_env, NULL, AXIS2_TRUE, 0, AXIS2_XML_PARSER_TYPE_BUFFER); om_output = axiom_output_create(_env, xml_writer); axiom_namespace_t* ns_xsi = axiom_namespace_create(_env, "http://www.w3.org/2001/XMLSchema-instance", "xsi"); axiom_element_t* node_ele = (axiom_element_t*) axiom_node_get_data_element(node, _env); axiom_element_declare_namespace_assume_param_ownership(node_ele, _env, ns_xsi); axiom_node_serialize_sub_tree(node, _env, om_output); xmlreply = (axis2_char_t*)axiom_xml_writer_get_xml(xml_writer, _env); axiom_node_free_tree(node, _env); } if (om_output) { axiom_output_free(om_output, env); om_output = NULL; } if (wsf_service_client) { axis2_svc_client_free(wsf_service_client, env); wsf_service_client = NULL; } if(om_builder) { axiom_stax_builder_free(om_builder, env); om_builder = NULL; } if (env) { axutil_env_free((axutil_env_t *) env); env = NULL; } Thanks and Regards Manoj