Fehler wegen Speichermangel (OutOfMemoryErrors) nach Migration
Wenn Sie mit Java API for XML Web Services-Anwendungen (JAX-WS) arbeiten, können unter Umständen java/lang/OutOfMemoryError-Fehler angezeigt werden, nachdem Sie eine Migration von WebSphere Process Server oder einer früheren Version von IBM® Business Process Manager ausgeführt haben.
Die Heapspeicheranalyse zeigt, dass
org.apache.axis2.description.AxisService
hauptverantwortlich für diese Bedingung ist, wie im folgenden Stack
gezeigt:
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
Es ist mehr Speicher erforderlich, weil das Standardverhalten von JAX-WS-Anwendungen zwischen WebSphere Application Server V6, V7 und V8 geändert wurde. Da IBM BPM auf WebSphere Application Server basiert, kann dieses Problem auftreten, wenn Sie WebSphere Application Server mit IBM BPM migrieren.
Anmerkung: Die empfohlene Eigenschaft jaxws.share.dynamic.ports.enable wurde in WebSphere Application
Server V7 mit PM63537: ADD SHARE_DYNAMIC_PORTS_ACROSS_SERVICES JVM PROPERTY IN
V7 eingeführt, sie ist aber nicht standardmäßig
aktiviert.
Nehmen Sie die folgenden Änderungen vor, um das Problem zu lösen:
- Vergrößern Sie den Java-Heapspeicher.
- Legen Sie die GC-Richtlinie auf die V6.1-Standardeinstellung gcPolicy: -Xgcpolicy:optthruput fest.
- Zum Zurücksetzen des Verhaltens, sodass dynamische Ports erneut von mehreren Serviceinstanzen verwendet werden, können Sie die angepasste JVM-Eigenschaft jaxws.share.dynamic.ports.enable = true festlegen. Allerdings kann dies zu anderen Problemen führen, z. B. können Richtliniensatzanhänge falsch auf gemeinsam genutzte dynamische Ports angewendet werden. Wenn Sie dieses Flag auf 'true' setzen und einige der beschriebenen Probleme auftreten, entfernen Sie die Einstellung des Flags.
- Wenn in WebSphere for z/OS mehr als eine Servantregion verwendet wird, ziehen Sie in Betracht, die folgende angepasste WebSphere-Eigenschaft hinzuzufügen: com.ibm.ws390.routing.EnableCustomSessionCookieName=true
