Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
The moose likes Web Services and the fly likes OutOfMemoryError when sending SOAP message Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "OutOfMemoryError when sending SOAP message" Watch "OutOfMemoryError when sending SOAP message" New topic
Author

OutOfMemoryError when sending SOAP message

D J Babu
Greenhorn

Joined: Nov 19, 2008
Posts: 1
We are using WAS 5.1 .
We are sending a large amount of data through SOAP in our applicaion.
We are receiving OutOfMemoryError exception in our server.
Here is the log

BossLog: { 0093} 2008/11/12 13:33:55.599 01 SYSTEM=P101 SERVER=WCP011 PID=0X05000347 TID=0X170B1240 0X00001C
c=4515.1 ./bborjtr.cpp+861 ... BBOO0223I [Servlet Error]-[]: java.lang.OutOfMemoryError
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java(Compiled Code))
at org.apache.soap.util.mime.ByteArrayDataSource.<init>(Unknown Source)
at org.apache.soap.transport.TransportMessage.getEnvelope(Unknown Source)
at org.apache.soap.transport.TransportMessage.save(Unknown Source)
at org.apache.soap.server.http.RPCRouterServlet.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java(Inlined Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java(Inlined Compiled
Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java(Compiled
Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java(Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java(Compiled Code))
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java(Compiled Code))
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java(Compiled Code))
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java(Compiled Code))
at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java(Compiled
Code))
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java(Compiled Code))
at com.ibm.ws390.wc.httpcatcher.WS390Router$WS390RouterDispatcher.dispatch(WS390Router.java(Compiled Code))
at com.ibm.ws390.wc.httpcatcher.WS390Router$WS390RouterDispatcher.dispatchByURI(WS390Router.java(Compiled Code))
at com.ibm.ws390.wc.httpcatcher.WS390Router$WS390RouterDispatcher.service(WS390Router.java(Compiled Code))
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java(Compiled Code))
at com.ibm.ws390.wc.http.HttpConnection.readAndHandleRequest(HttpConnection.java(Compiled Code))
at com.ibm.ws390.wc.http.HttpConnection.handle390Request(HttpConnection.java(Compiled Code))
at com.ibm.ws390.wc.httpcatcher.WS390HttpTransport.handleRequest(WS390HttpTransport.java(Compiled Code))
at com.ibm.ws390.wc.httpcatcher.WS390HttpTransportWrapper.httprequest(WS390HttpTransportWrapper.java(Compiled Code))
at com.ibm.ws390.orb.ServerRegionBridge.httpinvoke(ServerRegionBridge.java(Compiled Code))
at com.ibm.ws390.orb.ORBEJSBridge.httpinvoke(ORBEJSBridge.java(Inlined Compiled Code))
at com.ibm.ws390.orb.parameters.HTTPInvoke.HTTPInvokeParmSetter(HTTPInvoke.java(Compiled Code))

Please help in resolving this issue.
William Brogden
Author and all-around good cowpoke
Rancher

Joined: Mar 22, 2000
Posts: 12761
    
    5
I am guessing that you are trying to send bulk data as part of the SOAP message itself. Due to the creation of a DOM of the SOAP message this is slow and consumes excess memory.

The SAAJ - Soap Attachments API for Java protocol was created to handle bulk data gracefully.

Bill
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: OutOfMemoryError when sending SOAP message
 
Similar Threads
Hiding stacktrace for java net SocketTimeoutException Read timed out
Expected 'envelope' but found html
WSDL Exception
Occaisonal org.xml.sax.SAXException
Unable to locate classes at runtime ???