Skip to main content

Memory bloat in Metro jax-ws client webapp on Weblogic app server - ServletInputStream buffer size 100MB?

No replies
tisomaki
Offline
Joined: 2013-04-11
Points: 0

Hello folks!

We have been trying to figure out why our wsimport generated Jax-ws Web Service installed on Weblogic web container runs out of memory when external client tries to connect to i. We did 10-15 simultaneous calls, only first ones being succesful. A heap dump analysis revealed that there are a dozen of weblogic.servlet.internal.ServletInputStreamImpl instances holding ~100MB byte arrays(100000000 bytes). Each byte array contains only the web service request to be sent to remote web service endpoint(aprox. 300 characters).

Eclipse-based Memory Analyzer suggests the following:

+One instance of "weblogic.servlet.internal.ServletInputStreamImpl" loaded by "sun.misc.Launcher$AppClassLoader @ 0xffffffff30418a60" occupies 100 000 672 (10,56%) bytes. The memory is accumulated in one instance of "byte[]" loaded by "".+

There are totally ten of these InputStream instances, thus leading to OutOfMemory(we are having a heap size of 1GB) ...

Could it be, that Jaxws somehow controls the buffer size and for some reason decides to reserve 100MB?

Thank's in advance for any response!

Best Regards,
Thomas Isomäki