OutOfMemoryErrors after migration
If you have Java API for XML Web Services (JAX-WS) applications, you might see java/lang/OutOfMemoryError errors after you migrate from WebSphere® Process Server or a previous version of IBM® Business Process Manager.
Heap analysis shows that the org.apache.axis2.description.AxisService is the
main contributor to this condition, as shown in the following
stack:
2,115,840,672 (48.54%)[88]9 org/apache/axis2/context/ConfigurationContext 0x99b8aa38
2,115,838,152 (48.54%)[176]33 org/apache/axis2/engine/AxisConfiguration 0x96f59228
2,030,303,824 (46.57%) [48]1 java/util/concurrent/ConcurrentHashMap 0x96f59708
[..]2,030,303,776 (46.57%)[80]16 array of java/util/concurrent/ConcurrentHashMap$Segment 0x99b8cc88
1,774,689,352(40.71%)[32]2 java/util/concurrent/ConcurrentHashMap$Segment 0x96f5c5f0
[..]1,774,689,296(40.71%)[4,112]375 array of java/util/concurrent/ConcurrentHashMap$HashEntry 0x1104b7dd0
302,843,912(6.95%)[24]3 java/util/concurrent/ConcurrentHashMap$HashEntry 0x114b92370
284,064,808(6.52%)[24]2 java/util/concurrent/ConcurrentHashMap$HashEntry 0xcfc63250
More memory is required because the default behavior of JAX-WS applications changed between WebSphere Application Server V6, V7, and V8. Because IBM BPM relies on WebSphere Application Server, you might see this problem when you migrate WebSphere Application Server with IBM BPM.
Note: The recommended property jaxws.share.dynamic.ports.enable was
introduced in WebSphere Application
Server V7 with PM63537: ADD SHARE_DYNAMIC_PORTS_ACROSS_SERVICES JVM PROPERTY IN
V7, but it is not enabled by default.
To resolve the problem, consider making the following changes:
- Increase the Java heap size
- Set the GC policy to the v6.1 default setting of gcPolicy: -Xgcpolicy:optthruput
- To revert the behavior so that dynamic ports are again shared across service instances, you can set the JVM custom property jaxws.share.dynamic.ports.enable = true. However, doing so can cause some other issues, such as having policy set attachments incorrectly applied across shared dynamic ports. If you set this flag to true and encounter some of these issues, remove the flag setting.
- For WebSphere for z/OS, if more than one Servant region is used, consider adding the following WebSphere custom property: com.ibm.ws390.routing.EnableCustomSessionCookieName=true
