[
https://issues.apache.org/jira/browse/AXIS2-4007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12628318#action_12628318
]
Amila Chinthaka Suriarachchi commented on AXIS2-4007:
-----------------------------------------------------
I tested with a current SNAPSHOT by using the jprofiler to test the memory
objects.
Although there are some memory increments there is not any new objects are
created. and after some time (i.e after garbage collected) it comes back to
normal.
it tested with a 5000 message sequence with 50 messges/second.
Please have a look at with a nightly build.
Can you test with a profiling tool like jprofiler and check the types of the
objects that are not garbadge collected?
thanks,
Amila.
> Axis2 1.4.1 client stub not freed
> ---------------------------------
>
> Key: AXIS2-4007
> URL: https://issues.apache.org/jira/browse/AXIS2-4007
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: client-api
> Affects Versions: 1.4.1
> Environment: Axis2 1.4.1
> jdk1.5.0_12
> Reporter: Nanpeng Chen
>
> For Axis2 1.4.1, if I instantiate a new client stub for every web service
> request, the stub is not freed. This was not happened with Axis2 1.2. For
> example, I modified Version service's getVersion() to do following:
> public sample.axisversion.GetVersionResponse getVersion() throws
> ExceptionException0 {
> TestServiceStub stub = null;
> try {
> stub = new
> TestServiceStub("http://localhost:8080/axis2_141/services/TestService/");
> HelloResponse response = stub.Hello(new
> HelloRequest("myName"));
> } catch (AxisFault e) {
> System.err.println(e.getMessage());
> } catch (RemoteException e) {
> System.err.println(e.getMessage());
> } finally {
> if (stub != null) {
> try {
> stub.cleanup();
> } catch (AxisFault e) {
> System.err.println(e.getMessage());
> }
> }
> }
> GetVersionResponse response = new GetVersionResponse();
> response.set_return("1.4.1");
> return response;
> }
> Each time getVersion() is called, it creates a new instance of
> TestServiceStub, and uses it to send out a HelloRequest. I put this modified
> Version.aar along with the TestService.aar into axis2_141.war and deployed it
> to JBoss. After I sent multiple version requests to the Version service, I
> saw significant memory leak for JBOSS.
> I also tried to keep an instance of the stub into a singleton class, and use
> the same instance every time as following:
> public sample.axisversion.GetVersionResponse getVersion() throws
> ExceptionException0 {
> TestServiceStub stub = null;
> try {
> stub =
> TestServiceStubSingleton.INSTANCE.getStub("http://localhost:8080/axis2_141/services/TestService/");
> HelloResponse response = stub.Hello(new
> HelloRequest("myName"));
> } catch (AxisFault e) {
> System.err.println(e.getMessage());
> } catch (RemoteException e) {
> System.err.println(e.getMessage());
> }
> GetVersionResponse response = new GetVersionResponse();
> response.set_return("1.4.1");
> return response;
> }
> This workaround fixed the memory leak. But in our applications, we have
> situations that new client stub has to be created each time. I think the
> better solution is for Axis2 to free the client stub.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]