Troubleshooting
Problem
WebSphere Application Server V8, V8.5 and V9 can encounter high heap usage leading to an OutOfMemoryError (OOM). The heapdump analysis shows that the prime suspect is org.apache.axis2.description.AxisService and/or org.apache.axis2.client.ServiceClient.
Cause
The problem was triggered by changes in default behaviors between WebSphere Application Server Version 6.1.x and Version 8.0.x.
Changes that could affect WebSphere Application Server Version 8.0 and above and memory usage when using JAX-WS dynamic ports, which are those added using the service method addPort, might have additional memory requirements starting in WebSphere® Application Server Version 8.0 and above. In previous releases, a single instance of a dynamic port could be shared across multiple service instances. In version 8.0 and above, dynamic ports are now scoped to the instance of the service that added them. If a JAX-WS client has multiple service instances which refer to a dynamic port of the same name, those instances are no longer shared. This can potentially increase the memory requirements for that client. The memory used by dynamic ports is released when the service instance goes out of scope. However, if you encounter issues related to increased memory usage, it is possible to revert the behavior so that dynamic ports are again shared across service instances.
Changes that could affect WebSphere Application Server Version 8.0 and above and memory usage when using JAX-WS dynamic ports, which are those added using the service method addPort, might have additional memory requirements starting in WebSphere® Application Server Version 8.0 and above. In previous releases, a single instance of a dynamic port could be shared across multiple service instances. In version 8.0 and above, dynamic ports are now scoped to the instance of the service that added them. If a JAX-WS client has multiple service instances which refer to a dynamic port of the same name, those instances are no longer shared. This can potentially increase the memory requirements for that client. The memory used by dynamic ports is released when the service instance goes out of scope. However, if you encounter issues related to increased memory usage, it is possible to revert the behavior so that dynamic ports are again shared across service instances.
Environment
JAX-WS application running on WebSphere Application Server V8.0 and above.
Resolving The Problem
Solution:
- To revert the behavior so that dynamic ports are again shared across service instances, set the JVM custom property:
Name: jaxws.share.dynamic.ports.enable
Value: true
For navigation, see "Java virtual machine custom properties"
https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/xrun_jvm.html
https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/xrun_jvm.html
Related Information
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Component":"Out of Memory","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"8.0;8.5;9.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Was this topic helpful?
Document Information
Modified date:
03 March 2020
UID
swg21634776