jBPM6 PER_PROCESS_INSTANCE strategy in WebSphere8.5.5 Unable to commit transaction exception
stevenhu Nov 11, 2014 11:12 AMI am evaluating the PER_PROCESS_INSTANCE strategy. I can successfully start a process, and get the human task data and show them on page, but I run into the following error below when I am trying to call TaskService.complete() to complete the final human task. Based on the guide, I also provide the process instance id to build the runtime engine. But I still got the same error. Can anybody kindly give some suggestions? Thanks in advance.
the environment: WebSphere Application Server 8.5.5.2,
Oracle 11g
jbpm 6.1.0.Final,
a web application as jbpm client via Remote Rest API
database based user role
I created the runtime engine like the below:
RemoteRestRuntimeEngineFactoryBuilder builder = RemoteRestRuntimeEngineFactory.newBuilder();
builder.addDeploymentId(bpmProcessContext)
.addUserName(env.getWorkbenchUser())
.addPassword(env.getWorkbenchPwd())
.addUrl(new URL(env.getWorkbenchUrl()))
.addTimeout(60);
builder.addProcessInstanceId(processInstanceId);
RemoteRestRuntimeEngineFactory factory = builder.build();
runtimeEngine = factory.newRuntimeEngine();
The client-end exception trace stack is shown below, and the detailed jbpm workbench log including step-by-step sql statements is attached.
[11/10/14 18:11:44:186 EST] 000000ff SystemOut O 4446752 2014-11-10 18:11:44,186 TRACE WebContainer : 5 org.kie.services.client.api.command.AbstractRemoteCommandObject - Sending CompositeCommand via POST to http://ptapp03:9080/scf/wfe/rest/runtime/com.pti.fsc.cda:cda-bpm:1.0.0/execute
[11/10/14 18:11:44:186 EST] 000000ff SystemOut O 4446752 2014-11-10 18:11:44,186 TRACE WebContainer : 5 org.kie.services.client.api.command.AbstractRemoteCommandObject - Serialized JaxbCommandsRequest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><command-request><deployment-id>com.pti.fsc.cda:cda-bpm:1.0.0</deployment-id><process-instance-id>874</process-instance-id><ver>6.1.0.1</ver><task-composite-command><mainCommand xsi:type="completeTaskCommand" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><task-id>1513</task-id><user-id>john</user-id><data><item key="taskResult"><value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">createApproved</value></item></data></mainCommand><commands xsi:type="executeTaskRulesCommand" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><task-id>1513</task-id><user-id>john</user-id><data><item key="taskResult"><value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">createApproved</value></item></data><scope>completeTask</scope></commands><commands xsi:type="processSubTaskCommand" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><task-id>1513</task-id><user-id>john</user-id><data><item key="taskResult"><value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">createApproved</value></item></data></commands><commands xsi:type="cancelDeadlineCommand" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><task-id>1513</task-id><removeStart>true</removeStart><removeEnd>true</removeEnd></commands></task-composite-command></command-request>
[11/10/14 18:11:44:186 EST] 000000ff SystemOut O 4446752 2014-11-10 18:11:44,186 DEBUG WebContainer : 5 org.kie.services.client.api.command.AbstractRemoteCommandObject - Sending POST request with CompositeCommand to http://ptapp03:9080/scf/wfe/rest/runtime/com.pti.fsc.cda:cda-bpm:1.0.0/execute
[11/10/14 18:11:44:391 EST] 000000ff SystemOut O 4446956 2014-11-10 18:11:44,390 ERROR WebContainer : 5 - *********** completeTask error
org.kie.services.client.api.command.exception.RemoteApiException: RollbackException thrown with message 'null':
java.lang.RuntimeException: Unable to commit transaction
at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:212)
at org.jbpm.services.task.persistence.TaskTransactionInterceptor.execute(TaskTransactionInterceptor.java:56)
at org.jbpm.services.task.commands.TaskCommandExecutorImpl.execute(TaskCommandExecutorImpl.java:40)
at org.jbpm.services.task.impl.command.CommandBasedTaskService.execute(Unknown Source)
at org.kie.remote.services.cdi.ProcessRequestBean.doTaskOperation(ProcessRequestBean.java:245)
at org.kie.remote.services.cdi.ProcessRequestBean.processCommand(ProcessRequestBean.java:120)
at sun.reflect.GeneratedMethodAccessor371.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:297)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:98)
at org.kie.remote.services.cdi.ProcessRequestBean_$$_javassist_535.processCommand(ProcessRequestBean_$$_javassist_535.java)
at org.kie.remote.services.rest.ResourceBase.restProcessJaxbCommandsRequest(ResourceBase.java:73)
at org.kie.remote.services.rest.RuntimeResource.execute(RuntimeResource.java:104)
at sun.reflect.GeneratedMethodAccessor380.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:297)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:98)
at org.kie.remote.services.rest.RuntimeResource_$$_javassist_537.execute(RuntimeResource_$$_javassist_537.java)
at sun.reflect.GeneratedMethodAccessor380.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)
at org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:34)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceMethod(FindResourceMethodHandler.java:188)
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:110)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.internal.handlers.OptionsMethodWADLHandler.handleRequest(OptionsMethodWADLHandler.java:51)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)
at org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:60)
at org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207)
at org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)
at org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:62)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at org.kie.remote.services.rest.jaxb.DynamicJaxbContextFilter.doFilter(DynamicJaxbContextFilter.java:29)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at org.jbpm.designer.web.filter.impl.PluggableFilter.doFilter(PluggableFilter.java:70)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at org.uberfire.security.server.UberFireSecurityFilter.doFilter(UberFireSecurityFilter.java:283)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:909)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)
Caused by: javax.transaction.RollbackException
at com.ibm.tx.jta.impl.TransactionImpl.stage3CommitProcessing(TransactionImpl.java:1258)
at com.ibm.tx.jta.impl.TransactionImpl.processCommit(TransactionImpl.java:1028)
at com.ibm.tx.jta.impl.TransactionImpl.commit(TransactionImpl.java:949)
at com.ibm.ws.tx.jta.TranManagerImpl.commit(TranManagerImpl.java:439)
at com.ibm.tx.jta.impl.TranManagerSet.commit(TranManagerSet.java:191)
at com.ibm.ws.tx.jta.UserTransactionImpl.commit(UserTransactionImpl.java:302)
at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:209)
... 106 more
Caused by: java.util.ConcurrentModificationException
at java.util.TreeMap$AbstractMapIterator.makeNext(TreeMap.java:5807)
at java.util.TreeMap$UnboundedKeyIterator.next(TreeMap.java:5909)
at org.drools.persistence.TransactionSynchronizationContainer.beforeCompletion(TransactionSynchronizationContainer.java:18)
at org.drools.persistence.jta.JtaTransactionSynchronizationAdapter.beforeCompletion(JtaTransactionSynchronizationAdapter.java:39)
at com.ibm.ws.uow.ComponentContextSynchronizationWrapper.beforeCompletion(ComponentContextSynchronizationWrapper.java:65)
at com.ibm.tx.jta.impl.RegisteredSyncs.coreDistributeBefore(RegisteredSyncs.java:291)
at com.ibm.ws.tx.jta.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:153)
at com.ibm.ws.tx.jta.TransactionImpl.prePrepare(TransactionImpl.java:2369)
at com.ibm.ws.tx.jta.TransactionImpl.stage1CommitProcessing(TransactionImpl.java:577)
at com.ibm.tx.jta.impl.TransactionImpl.processCommit(TransactionImpl.java:1015)
... 111 more
at org.kie.services.client.api.command.AbstractRemoteCommandObject.executeRestCommand(AbstractRemoteCommandObject.java:438)
at org.kie.services.client.api.command.AbstractRemoteCommandObject.execute(AbstractRemoteCommandObject.java:120)
at org.jbpm.services.task.impl.command.CommandBasedTaskService.complete(Unknown Source)