You are viewing a plain text version of this content. The canonical link for it is here.
Posted to savan-dev@ws.apache.org by "Prakash C Rao (JIRA)" <ax...@ws.apache.org> on 2010/07/06 18:05:50 UTC

[jira] Commented: (AXIS-2749) SAX2EventRecorder throws Out of Memory exception during Deserialization

    [ https://issues.apache.org/jira/browse/AXIS-2749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12885572#action_12885572 ] 

Prakash C Rao commented on AXIS-2749:
-------------------------------------

Yes, i too observed the same issue for our application with Axis 1.4. This bug really makes Axis 1.4 library useless for us. You can try out Axis2 1.5.1 and it's much stable version. I've done profiling for my application with Axis2 1.5.1 and it's very low on memory footprint. There are few best practices that you need to implement when you write client code such as stub pooling, creating only one configuration context and fine tunning http client parameters and after doing all this, i see low memory footprint with Axis2 1.5.1.

As an alternate to Axis, i tried protocol buffer from google to exchange data and found this to be much simpler, clean, easily maintainable, faster and yet low on memory footprint. Protocol buffer uses java serialization mechanism and you can write an object to any outputstream (output stream of http connection with doPost method) and on the other side you can easily construct the object back. Since this works on java serialization, it's much faster compared to XML transfer. 



> SAX2EventRecorder throws Out of Memory exception during Deserialization
> -----------------------------------------------------------------------
>
>                 Key: AXIS-2749
>                 URL: https://issues.apache.org/jira/browse/AXIS-2749
>             Project: Axis
>          Issue Type: Bug
>          Components: Serialization/Deserialization
>    Affects Versions: 1.4
>         Environment: Operating System: OS X 10.5.4, Java SE: 1.6, Java EE: 1.5, Axis: 1.4
>            Reporter: Michael Olson
>            Priority: Critical
>
> After an unspecified amount of time, usually less than twelve hours, a thread repeatedly deserializing SOAP calls will eventually throw a java.lang.OutOfMemoryError.  For instance:
> Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space
> 	at org.apache.axis.message.SAX2EventRecorder$objArrayVector.add(SAX2EventRecorder.java:254)
> 	at org.apache.axis.message.SAX2EventRecorder.startEntity(SAX2EventRecorder.java:116)
> 	at org.apache.axis.encoding.DeserializationContext.startEntity(DeserializationContext.java:1178)
> 	at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:214)
> 	at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
> 	at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
> 	at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
> 	at org.apache.axis.client.Call.invoke(Call.java:2467)
> 	at org.apache.axis.client.Call.invoke(Call.java:2366)
> 	at org.apache.axis.client.Call.invoke(Call.java:1812)
> 	at com.opencalais.ws.CalaisSoapStub.enlighten(CalaisSoapStub.java:113)
> 	at com.opencalais.api.CalaisClient.enlighten(CalaisClient.java:155)
> 	at edu.caltech.cs.eventweb.calaistester.CalaisFeedSubmitter.processOne(CalaisFeedSubmitter.java:88)
> 	at edu.caltech.cs.eventweb.calaistester.CalaisFeedSubmitter.run(CalaisFeedSubmitter.java:143)
> 	at java.lang.Thread.run(Thread.java:637)
> It is worth noting that the thread in question maintains very little state itself.  It pulls objects from a queue, makes a soap call with that object as a parameter, and then puts the result in another queue.  That is all that is expected of that thread.
> This is either very similar or identical to the problem reported for version 1.2 reported here but unassigned: https://issues.apache.org/jira/browse/AXIS-2698
> I wanted to make sure this was also identified as a 1.4 problem.  This bug is making the Axis library incredibly unstable for me.

-- 
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: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org