Hi All,
We are seeing performance issues with one of the BPO in production environment. We have done some tuning wrt server max thread pool size, Trigger threads max size and process audit and process engine pool size by increasing the pool size. The situation has improved very little. Dont know what is next to do…? Have observed few things
-
On the service usage page we can see the below - wm.prt.dispatch:handleTransition(298) - Dont know what 298 refers to…? Is it that 298 transactions are waiting to get connection from ProcessEngine connection pool…? Can some one please explain this…?
-
We have taken the thread dump of the server where the BPO is running. There are multiple entries as below.
“PRT6cfcbb70855d11e09940b1329a9ef116” daemon prio=1 tid=0x00002aaab404b9c0 nid=0x5bed in Object.wait() [0x000000006b39e000…0x000000006b39fd10]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at com.wm.util.sync.LatchedSemaphore.semWait(LatchedSemaphore.java:54)
- locked <0x00002ab43f69b318> (a com.wm.util.sync.LatchedSemaphore)
at com.wm.util.sync.LatchedSemaphore.semWait(LatchedSemaphore.java:39)
- locked <0x00002ab43f69b318> (a com.wm.util.sync.LatchedSemaphore)
at com.wm.app.audit.AuditFactory.checkForSuspend(AuditFactory.java:948)
at com.wm.app.audit.AuditFactory.getPoolProducer(AuditFactory.java:808)
at com.wm.app.audit.AuditFactory._publishAudit(AuditFactory.java:628)
at com.wm.app.audit.impl.AuditRuntime.publishAudit(AuditRuntime.java:63)
at com.wm.app.prt.AuditLogging.publishAudit(AuditLogging.java:1065)
at com.wm.app.prt.AuditLogging.log(AuditLogging.java:850)
at com.wm.app.prt.AuditLogging.logTransition(AuditLogging.java:492)
at com.wm.app.prt.StepDispatcherAgent.sendTransition(StepDispatcherAgent.java:1961)
at com.wm.app.prt.StepDispatcherAgent.sendOutputEvents(StepDispatcherAgent.java:1863)
at com.wm.app.prt.StepDispatcherAgent.runStep(StepDispatcherAgent.java:1374)
at com.wm.app.prt.StepDispatcherAgent.execute(StepDispatcherAgent.java:1057)
at com.wm.app.prt.StepDispatcherAgent.synchRun(StepDispatcherAgent.java:143)
at com.wm.app.prt.StepDispatcher.startStep(StepDispatcher.java:1058)
at com.wm.app.prt.StepDispatcher.dispatch(StepDispatcher.java:1018)
at com.wm.app.prt.StepDispatcher.handleTransition(StepDispatcher.java:170)
at wm.prt.dispatch.handleTransition(dispatch.java:335)
at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:403)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:631)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:40)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:241)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:51)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:228)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:30)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:624)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:536)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:339)
at com.wm.app.b2b.server.dispatcher.trigger.Trigger.invokeService(Trigger.java:331)
at com.wm.app.b2b.server.dispatcher.trigger.Trigger.processMessage(Trigger.java:233)
at com.wm.app.b2b.server.dispatcher.trigger.DefaultTriggerTaskHelper.process(DefaultTriggerTaskHelper.java:253)
at com.wm.app.b2b.server.dispatcher.trigger.TriggerTask.run(TriggerTask.java:282)
at com.wm.util.pool.PooledThread.run(PooledThread.java:118)
- locked <0x00002ab447060810> (a com.wm.app.b2b.server.TMPooledThread)
at java.lang.Thread.run(Thread.java:595)
Does the above mean there is any deadlock happening in PRT (process engine database). Is it a cause of concern…? If so, what could be done to avoid this. Do we need to further increase the JDBC pool size…?
Please explain the above thread dump example. If someone can provide some suggestion ASAP it would be very helpful. We are seeing issues with this BPO everyday in our production environment.
Thanks in Advance !