No harm in trying. I have been using release 1.5 for over a year now in a very 
high volume environment.

 

svc_client is not designed to be reused. Here are some of the issues I came 
across in 1.4/1.5

-          It leaks all over the place - For example HTTP headers, you will 
have to reset all the headers after each use.

-          Default HTTP transport opens socket for every request - you have to 
use libcurl

-          libcurl wrapper had some terrible memory leaks - this should be 
fixed in 1.6

-          axis2c does not have support for proxy, ssl, etc with libcurl 
transport - there are patches to do this though

 

From: Samisa Abeysinghe [mailto:sam...@wso2.com] 
Sent: Thursday, March 04, 2010 9:29 AM
To: Apache AXIS C User List
Subject: Re: How to fix memory leak in Axis2/C client?

 

 

On Thu, Mar 4, 2010 at 8:37 PM, Hatim Daginawala 
<hatim.daginaw...@argodata.com> wrote:

You probably need to call axiom_node_free_tree on both request and response 
node before reusing svc_client

 

I do not think so - this will lead to seg faults if I recall right.

 

If you cannot share the code, then the best is to use echo sample and see if it 
leaks memory and if it does, report issues against that. 

 

It is like searching in the dark to talk about this without some concrete code. 

 

Samisa...

 

         

        From: Olivier Mengué [mailto:omen...@oxymel.com] 
        Sent: Thursday, March 04, 2010 8:36 AM
        To: Apache AXIS C User List; Apache AXIS C User List
        Cc: Axis2/C user
        Subject: RE : How to fix memory leak in Axis2/C client?

         

         

        Samisa Abeysinghe wrote:
        >It is hard to tell from the list of methods given. Can you please 
provide
        >the code you are using to test? Then we can profile and see where the 
leaks
        >are.
        
        As you probably expected, no, I can't.
        
        Could you at least tell me if I have a good understanding of the API?
        Is it my responsability to free the XML trees used in the SOAP exchange?
        
        Or if it may be a bug such as AXIS2C-1452?
        
        >> * for every call to the service:
        >>     - I construct the XML request document:
        >>         + axutil_qname_create()
        >>         + axiom_element_create_with_qname()
        >>         + axiom_element_create(), axiom_element_set_text()
        >>     - axis2c_svc_client_send_receive()
        >>     - I parse the XML response document:
        >>         + axis2c_svc_client_get_http_status_code()
        >>         + axis2c_svc_client_get_last_response_has_fault()
        >>         + axiom_node_get_n,ext_sibling()
        >>         + axiom_node_get_node_type()
        >>         + axiom_node_get_data_element(), axiom_node_get_localname(),
        >> axiom_node_get_namespace(), axiom_node_get_text()
        >>
        >>
        >> I suspect that either the request XML tree and the response XML tree 
are
        >> not freed,
        >> but I've seen nothing in the axis2c_svc_client API to do that.
        >>
        >> Which function calls are missing to fix my leak?
        >>
        >> Olivier.
        >>
        
        Olivier Mengué
        Oxymel, France. 

________________________________

        ---------------------------------------------------
        Confidentiality Notice: This electronic mail transmission is 
confidential, 
        may be privileged and should be read or retained only by the intended
        recipient. If you have received this transmission in error, please
        immediately notify the sender and delete it from your system. 




-- 
Samisa Abeysinghe 
Director, Engineering - WSO2 Inc.

http://wso2.com/ - "lean . enterprise . middleware"



---------------------------------------------------
Confidentiality Notice:  This electronic mail transmission is confidential, 
may be privileged and should be read or retained only by the intended
recipient.  If you have received this transmission in error, please
immediately notify the sender and delete it from your system.

Reply via email to