Product/components used and version/fix level:
IS_10.15_Core_Fix4
SAP_10.1_Fix11
Description
Hello,
We encouter some latencies regarding SAP integrations.
A trigger is activated (topic durable subscriber CONCURRENT with 100 maximum threads).
During its execution, those 3 services from WmSAP package are very slow :
- pub.sap.client:createTID
- pub.sap.transport.ALE:OutboundProcess
- pub.sap.client:confirmTID
It processes less than 10 JMS messages per second.
We want to integrate 10 millions IDoc to SAP.
Actions already tried :
We tried to set the “Store message body” of the SAP connection to “Off” but it changed nothing.
We deleted the whole txStore directory, but the issue still remains.
Thead Dump informations :
"Server Thread Pool" Id=780 in WAITING
at java.base@11.0.18/jdk.internal.misc.Unsafe.park(Native Method)
- waiting on <0x28c21d8f> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) owned by thread="Thread-646" Id=1741
at java.base@11.0.18/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
at java.base@11.0.18/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
at java.base@11.0.18/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:1009)
at java.base@11.0.18/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1324)
at java.base@11.0.18/java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:738)
at com.wm.adapter.sap.xtn.SAPTransactionManager.cacheGet(SAPTransactionManager.java:164)
at com.wm.adapter.sap.xtn.SAPTransactionManager.get(SAPTransactionManager.java:1122)
- locked <0x2c542fbd> (a java.lang.String)
at com.wm.adapter.sap.xtn.SAPTransactionManager.setTargetSystem(SAPTransactionManager.java:2013)
at com.wm.adapter.sap.cci.BasicAdapterService.initTransaction(BasicAdapterService.java:218)
at com.wm.adapter.sap.cci.BasicAdapterService.initTransaction(BasicAdapterService.java:180)
at com.wm.adapter.sap.cci.ConfirmTID.init(ConfirmTID.java:88)
at com.wm.adapter.sap.cci.BasicAdapterService.execute(BasicAdapterService.java:117)
at com.wm.adk.cci.interaction.WmInteraction.execute(WmInteraction.java:76)
at com.wm.pkg.art.ns.AdapterServiceNode.invokeService(AdapterServiceNode.java:396)
at com.wm.pkg.art.ns.ARTNSService.baseInvoke(ARTNSService.java:62)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:761)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.continueProcess(AbstractMonitorInvokeProcessor.java:356)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.processRuntime(AbstractMonitorInvokeProcessor.java:151)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.process(AbstractMonitorInvokeProcessor.java:171)
at wm.bci.internal.BciServiceInvokeNotifier.process(BciServiceInvokeNotifier.java:53)
at com.wm.ps.serviceMock.ServiceInterceptor.process(ServiceInterceptor.java:360)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:67)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
at com.wm.app.b2b.server.invoke.ConcurrentRequestLimitProcessor.process(ConcurrentRequestLimitProcessor.java:57)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:400)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:631)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:436)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:394)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:260)
at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:236)
at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:263)
at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:662)
at com.wm.lang.flow.FlowState.step(FlowState.java:527)
at com.wm.lang.flow.FlowState.invoke(FlowState.java:494)
at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1164)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:761)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.continueProcess(AbstractMonitorInvokeProcessor.java:356)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.processRuntime(AbstractMonitorInvokeProcessor.java:151)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.process(AbstractMonitorInvokeProcessor.java:171)
at wm.bci.internal.BciServiceInvokeNotifier.process(BciServiceInvokeNotifier.java:53)
at com.wm.ps.serviceMock.ServiceInterceptor.process(ServiceInterceptor.java:360)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:67)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
at com.wm.app.b2b.server.invoke.ConcurrentRequestLimitProcessor.process(ConcurrentRequestLimitProcessor.java:57)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:400)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:631)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:436)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:394)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:260)
at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:236)
at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:263)
at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:662)
at com.wm.lang.flow.FlowState.step(FlowState.java:527)
at com.wm.lang.flow.FlowState.invoke(FlowState.java:494)
at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1164)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:761)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.continueProcess(AbstractMonitorInvokeProcessor.java:356)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.processRuntime(AbstractMonitorInvokeProcessor.java:141)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.process(AbstractMonitorInvokeProcessor.java:171)
at wm.bci.internal.BciServiceInvokeNotifier.process(BciServiceInvokeNotifier.java:53)
at com.wm.ps.serviceMock.ServiceInterceptor.process(ServiceInterceptor.java:360)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:67)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
at com.wm.app.b2b.server.invoke.ConcurrentRequestLimitProcessor.process(ConcurrentRequestLimitProcessor.java:57)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:400)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:631)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:436)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:352)
at com.wm.app.b2b.server.jms.consumer.JMSTrigger.invokeService(JMSTrigger.java:1683)
at com.wm.app.b2b.server.jms.consumer.JMSTrigger.processSingleMessage(JMSTrigger.java:1272)
at com.wm.app.b2b.server.jms.consumer.JMSTrigger.processMessage(JMSTrigger.java:1238)
at com.wm.app.b2b.server.jms.consumer.ExecutionTask.process(ExecutionTask.java:620)
at com.wm.app.b2b.server.jms.consumer.ExecutionTask.processMessages(ExecutionTask.java:233)
at com.wm.app.b2b.server.jms.consumer.ContinuousExecutionTask.processMessages(ContinuousExecutionTask.java:235)
at com.wm.app.b2b.server.jms.consumer.ContinuousExecutionTask.run(ContinuousExecutionTask.java:68)
at com.wm.util.pool.PooledThread.run(PooledThread.java:127)
- locked <0x1d7e57b0> (a com.wm.app.b2b.server.TMPooledThread)
at java.base@11.0.18/java.lang.Thread.run(Thread.java:829)
"Thread-646" Id=1741 in BLOCKED
- locked <0x28c21d8f> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
at com.wm.adapter.sap.xtn.SAPTransactionManager.flushCache(SAPTransactionManager.java:422)
- waiting on <0x065ed98b> (a com.wm.adapter.sap.xtn.Transaction) owned by thread="Server Thread Pool" Id=10804
at com.wm.adapter.sap.xtn.SAPTransactionManager.access$600(SAPTransactionManager.java:58)
at com.wm.adapter.sap.xtn.SAPTransactionManager$1.run(SAPTransactionManager.java:659)
at java.base@11.0.18/java.lang.Thread.run(Thread.java:829)
"Server Thread Pool" Id=10804 in RUNNABLE
at java.base@11.0.18/java.io.FileDescriptor.close0(Native Method)
at java.base@11.0.18/java.io.FileDescriptor.close(FileDescriptor.java:297)
- locked <0x479b6fa6> (a java.io.FileDescriptor)
at java.base@11.0.18/java.io.FileOutputStream$1.close(FileOutputStream.java:398)
at java.base@11.0.18/java.io.FileDescriptor.closeAll(FileDescriptor.java:355)
- locked <0x479b6fa6> (a java.io.FileDescriptor)
at java.base@11.0.18/java.io.FileOutputStream.close(FileOutputStream.java:396)
at com.wm.adapter.sap.xtn.FileTransactionStore.writeXtn(FileTransactionStore.java:839)
- locked <0x014acb91> (a com.wm.adapter.sap.xtn.FileTransactionStore$TimedLock)
at com.wm.adapter.sap.xtn.FileTransactionStore.update(FileTransactionStore.java:1243)
at com.wm.adapter.sap.xtn.SAPTransactionManager.update(SAPTransactionManager.java:1560)
at com.wm.adapter.sap.xtn.SAPTransactionManager.updateState(SAPTransactionManager.java:2306)
- locked <0x065ed98b> (a com.wm.adapter.sap.xtn.Transaction)
at com.wm.adapter.sap.cci.BasicAdapterService.execute(BasicAdapterService.java:158)
at com.wm.adk.cci.interaction.WmInteraction.execute(WmInteraction.java:76)
at com.wm.pkg.art.ns.AdapterServiceNode.invokeService(AdapterServiceNode.java:396)
at com.wm.pkg.art.ns.ARTNSService.baseInvoke(ARTNSService.java:62)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:761)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.continueProcess(AbstractMonitorInvokeProcessor.java:356)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.processRuntime(AbstractMonitorInvokeProcessor.java:151)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.process(AbstractMonitorInvokeProcessor.java:171)
at wm.bci.internal.BciServiceInvokeNotifier.process(BciServiceInvokeNotifier.java:53)
at com.wm.ps.serviceMock.ServiceInterceptor.process(ServiceInterceptor.java:360)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:67)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
at com.wm.app.b2b.server.invoke.ConcurrentRequestLimitProcessor.process(ConcurrentRequestLimitProcessor.java:57)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:400)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:631)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:436)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:394)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:260)
at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:236)
at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:263)
at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:662)
at com.wm.lang.flow.FlowState.step(FlowState.java:527)
at com.wm.lang.flow.FlowState.invoke(FlowState.java:494)
at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1164)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:761)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.continueProcess(AbstractMonitorInvokeProcessor.java:356)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.processRuntime(AbstractMonitorInvokeProcessor.java:151)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.process(AbstractMonitorInvokeProcessor.java:171)
at wm.bci.internal.BciServiceInvokeNotifier.process(BciServiceInvokeNotifier.java:53)
at com.wm.ps.serviceMock.ServiceInterceptor.process(ServiceInterceptor.java:360)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:67)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
at com.wm.app.b2b.server.invoke.ConcurrentRequestLimitProcessor.process(ConcurrentRequestLimitProcessor.java:57)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:400)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:631)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:436)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:394)
at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:260)
at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:236)
at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:263)
at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:662)
at com.wm.lang.flow.FlowState.step(FlowState.java:527)
at com.wm.lang.flow.FlowState.invoke(FlowState.java:494)
at com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1164)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:761)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.continueProcess(AbstractMonitorInvokeProcessor.java:356)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.processRuntime(AbstractMonitorInvokeProcessor.java:141)
at fr.gifi.wm.monitor.manager.processor.AbstractMonitorInvokeProcessor.process(AbstractMonitorInvokeProcessor.java:171)
at wm.bci.internal.BciServiceInvokeNotifier.process(BciServiceInvokeNotifier.java:53)
at com.wm.ps.serviceMock.ServiceInterceptor.process(ServiceInterceptor.java:360)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:67)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
at com.wm.app.b2b.server.invoke.ConcurrentRequestLimitProcessor.process(ConcurrentRequestLimitProcessor.java:57)
at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:400)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:631)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:436)
at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:352)
at com.wm.app.b2b.server.jms.consumer.JMSTrigger.invokeService(JMSTrigger.java:1683)
at com.wm.app.b2b.server.jms.consumer.JMSTrigger.processSingleMessage(JMSTrigger.java:1272)
at com.wm.app.b2b.server.jms.consumer.JMSTrigger.processMessage(JMSTrigger.java:1238)
at com.wm.app.b2b.server.jms.consumer.ExecutionTask.process(ExecutionTask.java:620)
at com.wm.app.b2b.server.jms.consumer.ExecutionTask.processMessages(ExecutionTask.java:233)
at com.wm.app.b2b.server.jms.consumer.ContinuousExecutionTask.processMessages(ContinuousExecutionTask.java:235)
at com.wm.app.b2b.server.jms.consumer.ContinuousExecutionTask.run(ContinuousExecutionTask.java:68)
at com.wm.util.pool.PooledThread.run(PooledThread.java:127)
- locked <0x0ca9410e> (a com.wm.app.b2b.server.TMPooledThread)
at java.base@11.0.18/java.lang.Thread.run(Thread.java:829)
Question related to a production (customer) instance
Where could the issue comes from ?
What should we do to improve integration time ?