Agent appears to cause Out of Memory (OOM) exception when instrumenting Websphere BPM

Document ID : KB000017712
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

When monitoring WebSphere BPM, every time the project deploys their snapshot to the Process Server they see an OOM core dump to occur. Analysis of this dump shows thread making request to large amount of heap, 2GB+, which causes an OOM exception. Note as memory is never allocated the object does not show on heap dumps.

Solution:

APM engineering team reviewed and determined that the APM Agent itself is not allocating any memory, it is making a call to the stub (copied stack below) and that internally routes the call to the IBM IIOP protocol, which results in the large allocation request.


1XMCURTHDINFO  Current thread
NULL           ----------------------
3XMTHREADINFO      "WebContainer : 0" J9VMThread:0x00000000459CD700, j9thread_t:0x000001002CA522B0, java/lang/Thread:0x000000075E9EEE70, state:R,prio=5
3XMJAVALTHREAD      (java/lang/Thread getId:0x111, isDaemon:true)
3XMTHREADINFO1      (native thread ID:0x4C100FB, native priority:0x5,native policy:UNKNOWN)
3XMHEAPALLOC        Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3      Java callstack:
4XESTACKTRACE       at com/ibm/rmi/IOR.read(IOR.java:362(CompiledCode))
4XESTACKTRACE       at com/ibm/rmi/iiop/CDRReader.read_Object(CDRReader.java:1167)
4XESTACKTRACE       at com/ibm/rmi/iiop/CDRReader.read_abstract_interface(CDRReader.java:1602)
4XESTACKTRACE       at com/ibm/rmi/iiop/CDRReader.read_abstract_interface(CDRReader.java:1591)
4XESTACKTRACE       at com/lombardisoftware/server/ejb/tracking/_APIServicesHome_Stub.getEJBMetaData(_APIServicesHome_Stub.java)
4XESTACKTRACE       at com/wily/introscope/agent/servlethelper/EJBHelper.getEJBMetaData(EJBHelper.java:28)
4XESTACKTRACE       at com/wily/introscope/agent/trace/ejb/hc2/Ejb2StubNameFormatter.findInterfaceName(Ejb2StubNameFormatter.java:40)

The problem is known problem with the IBM JVM, see:-

http://www-304.ibm.com/support/docview.wss?uid=swg1PM46698

To overcome either upgrade the JVM or disable the EJB2StubTracing and EJB3StubTracing in toggles-full.pbd or toggles-typical.pbd. Simply add a # character to the TurnOn directive:-


 #TurnOn: EJB2StubTracing       
 #TurnOn: EJB3StubTracing