High CPU and Many Threads In BPELAssignWMP Caused by HashMap.get (Doc ID 1271625.1)

Last updated on NOVEMBER 03, 2016

Applies to:

Oracle(R) BPEL Process Manager - Version 10.1.3.4 to 10.1.3.5.0
Information in this document applies to any platform.
***Checked for relevance on 19-Feb-2013***

Symptoms

You see high CPU usage and many threads being used by HashMap.get in 10.1.3.4 or 10.1.3.5 while running BPEL instances.  This may be seen if invoking multiple BPEL instances of the same BPEL process at the same time.  It may be seen after the system is first started and there are many simultaneous requests coming in from external clients. 

You can verify this by taking a thread dump and observing many (e.g. 50+) HashMap.get threads for example:

pool-5-thread-60" prio=1 tid=0x435e1ab8 nid=0x5772 runnable [0x47ffe000..0x47fff020]
at java.util.HashMap.get(HashMap.java:346)
at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__getXPathExpr(BPELAssignWMP.java:1381) at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__getXPathExpr(BPELAssignWMP.java:1358) at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.performCopyTo(BPELAssignWMP.java:1111) at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__executeStatements(BPELAssignWMP.java:215) at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199) at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3704) at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1656) at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75) at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:220)
at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:317)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5777) at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1088) at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:589) at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:421) at sun.reflect.GeneratedMethodAccessor90.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.inv

 


And/or the following error stack is seen in the container log:

09/11/10 13:14:53 java.util.ConcurrentModificationException: concurrent
access to HashMap attempted by Thread[pool-5-thread-12,5,main]
09/11/10 13:14:53 java.util.ConcurrentModificationException: concurrent
access to HashMap attempted by Thread[pool-5-thread-13,5,main]
09/11/10 13:14:53 at java.util.HashMap.onExit(HashMap.java:226)
09/11/10 13:14:53 at java.util.HashMap.transfer(HashMap.java:690)
09/11/10 13:14:53 at java.util.HashMap.resize(HashMap.java:676)
09/11/10 13:14:53 at java.util.HashMap.addEntry(HashMap.java:1049)
09/11/10 13:14:53 at java.util.HashMap.put(HashMap.java:561)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__getJaxenXPathExpr(BPELAssignWMP.java:1407)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.performCopyTo(BPELAssignWMP.java:1111)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__executeStatements(BPELAssignWMP.java:215)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199)
09/11/10 13:14:53 at
com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3704)
09/11/10 13:14:53 at
com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1656)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:220)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:317)
09/11/10 13:14:53 at
com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5777)
09/11/10 13:14:53 at
com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1088)
09/11/10 13:14:53 at
com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:646)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:381)
09/11/10 13:14:53 at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown
Source)
09/11/10 13:14:53 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
09/11/10 13:14:53 at java.lang.reflect.Method.invoke(Method.java:618)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
09/11/10 13:14:53 at
com.evermind.server.ThreadState.runAs(ThreadState.java:693)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at java.util.HashMap.onEntry(HashMap.java:214)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
09/11/10 13:14:53 at java.util.HashMap.transfer(HashMap.java:686)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at java.util.HashMap.resize(HashMap.java:676)
09/11/10 13:14:53 at
com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
09/11/10 13:14:53 at java.util.HashMap.addEntry(HashMap.java:1049)
09/11/10 13:14:53 at
com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
09/11/10 13:14:53 at java.util.HashMap.put(HashMap.java:561)
09/11/10 13:14:53 at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown
Source)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__getJaxenXPathExpr(BPELAssignWMP.java:1407)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.performCopyTo(BPELAssignWMP.java:1111)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:141)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__executeStatements(BPELAssignWMP.java:215)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199)
09/11/10 13:14:53 at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
09/11/10 13:14:53 at
com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3704)
09/11/10 13:14:53 at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
09/11/10 13:14:53 at
com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1656)
09/11/10 13:14:53 at java.lang.Thread.run(Thread.java:810)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:220)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:317)
09/11/10 13:14:53 at
com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5777)
09/11/10 13:14:53 at
com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1088)
09/11/10 13:14:53 at
com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:646)
09/11/10 13:14:53 at
com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:381)
09/11/10 13:14:53 at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown
Source)
09/11/10 13:14:53 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
09/11/10 13:14:53 at java.lang.reflect.Method.invoke(Method.java:618)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
09/11/10 13:14:53 at
com.evermind.server.ThreadState.runAs(ThreadState.java:693)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
09/11/10 13:14:53 at
com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
09/11/10 13:14:53 at
com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
09/11/10 13:14:53 at
com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
09/11/10 13:14:53 at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown
Source)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:141)
09/11/10 13:14:53 at
com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
09/11/10 13:14:53 at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
09/11/10 13:14:53 at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
09/11/10 13:14:53 at java.lang.Thread.run(Thread.java:810)

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms