Terminate Active ProcessInstance in jbpm 5.2 using Local Task Service
sridhar532 Feb 14, 2012 11:47 AMHi All,
My Process after launching creates three parallel human tasks and stays active in those task for the user to Claim / Complete. Is it possible to Terminate my Active ProcessInstance before the users performs Claim / Complete Operation. Am using Local-JTA in jbpm 5.2 for Launching / Claim my process. When i try to abort the processInstance using ksession.abortProcessInstance(processInstanceId); am receiving the below error.
Hibernate: select sessioninf0_.id as id1_0_, sessioninf0_.lastModificationDate as lastModi2_1_0_, sessioninf0_.rulesByteArray as rulesByt3_1_0_, sessioninf0_.startDate as startDate1_0_, sessioninf0_.OPTLOCK as OPTLOCK1_0_ from SessionInfo sessioninf0_ where sessioninf0_.id=?
Hibernate: select processins0_.InstanceId as InstanceId0_0_, processins0_.lastModificationDate as lastModi2_0_0_, processins0_.lastReadDate as lastRead3_0_0_, processins0_.processId as processId0_0_, processins0_.processInstanceByteArray as processI5_0_0_, processins0_.startDate as startDate0_0_, processins0_.state as state0_0_, processins0_.OPTLOCK as OPTLOCK0_0_ from ProcessInstanceInfo processins0_ where processins0_.InstanceId=?
Hibernate: select workitemin0_.workItemId as workItemId2_0_, workitemin0_.creationDate as creation2_2_0_, workitemin0_.name as name2_0_, workitemin0_.processInstanceId as processI4_2_0_, workitemin0_.state as state2_0_, workitemin0_.OPTLOCK as OPTLOCK2_0_, workitemin0_.workItemByteArray as workItem7_2_0_ from WorkItemInfo workitemin0_ where workitemin0_.workItemId=?
Hibernate: select * from ( select task0_.id as id17_, task0_.allowedToDelegate as allowedT2_17_, task0_.taskInitiator_id as taskIni25_17_, task0_.priority as priority17_, task0_.activationTime as activati4_17_, task0_.actualOwner_id as actualO26_17_, task0_.createdBy_id as createdBy27_17_, task0_.createdOn as createdOn17_, task0_.documentAccessType as document6_17_, task0_.documentContentId as document7_17_, task0_.documentType as document8_17_, task0_.expirationTime as expirati9_17_, task0_.faultAccessType as faultAc10_17_, task0_.faultContentId as faultCo11_17_, task0_.faultName as faultName17_, task0_.faultType as faultType17_, task0_.outputAccessType as outputA14_17_, task0_.outputContentId as outputC15_17_, task0_.outputType as outputType17_, task0_.parentId as parentId17_, task0_.previousStatus as previou18_17_, task0_.processId as processId17_, task0_.processInstanceId as process20_17_, task0_.processSessionId as process21_17_, task0_.skipable as skipable17_, task0_.status as status17_, task0_.workItemId as workItemId17_ from Task task0_ where task0_.workItemId=? ) where rownum <= ?
Feb 14, 2012 9:42:53 PM org.drools.persistence.SingleSessionCommandService rollbackTransaction
SEVERE: Could not commit session
java.lang.RuntimeException: javax.persistence.TransactionRequiredException: No active JTA transaction on joinTransaction call
at org.jbpm.task.service.TaskServiceSession.doOperationInTransaction(TaskServiceSession.java:990)
at org.jbpm.task.service.TaskServiceSession.taskOperation(TaskServiceSession.java:433)
at org.jbpm.task.service.local.LocalTaskService.skip(LocalTaskService.java:220)
at com.jbpm.util.SyncWSHumanTaskHandler.abortWorkItem(SyncWSHumanTaskHandler.java:296)
at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalAbortWorkItem(JPAWorkItemManager.java:76)
at org.jbpm.workflow.instance.node.WorkItemNodeInstance.cancel(WorkItemNodeInstance.java:249)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setState(WorkflowProcessInstanceImpl.java:257)
at org.jbpm.process.instance.ProcessRuntimeImpl.abortProcessInstance(ProcessRuntimeImpl.java:362)
at org.drools.impl.StatefulKnowledgeSessionImpl.abortProcessInstance(StatefulKnowledgeSessionImpl.java:287)
at org.drools.command.runtime.process.AbortProcessInstanceCommand.execute(AbortProcessInstanceCommand.java:42)
at org.drools.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)
at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:345)
at org.drools.command.impl.CommandBasedStatefulKnowledgeSession.abortProcessInstance(CommandBasedStatefulKnowledgeSession.java:131)
at ComplexProcessTest.abortProcess(ComplexProcessTest.java:316)
at org.apache.jsp.pages.test.testTaskComplete_jsp._jspService(testTaskComplete_jsp.java:72)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.persistence.TransactionRequiredException: No active JTA transaction on joinTransaction call
at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:458)
at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:431)
at org.jbpm.task.service.TaskServiceSession.doOperationInTransaction(TaskServiceSession.java:986)
... 32 more
java.lang.RuntimeException: javax.persistence.TransactionRequiredException: No active JTA transaction on joinTransaction call
at org.jbpm.task.service.TaskServiceSession.doOperationInTransaction(TaskServiceSession.java:990)
at org.jbpm.task.service.TaskServiceSession.taskOperation(TaskServiceSession.java:433)
at org.jbpm.task.service.local.LocalTaskService.skip(LocalTaskService.java:220)
at com.jbpm.util.SyncWSHumanTaskHandler.abortWorkItem(SyncWSHumanTaskHandler.java:296)
at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalAbortWorkItem(JPAWorkItemManager.java:76)
at org.jbpm.workflow.instance.node.WorkItemNodeInstance.cancel(WorkItemNodeInstance.java:249)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setState(WorkflowProcessInstanceImpl.java:257)
at org.jbpm.process.instance.ProcessRuntimeImpl.abortProcessInstance(ProcessRuntimeImpl.java:362)
at org.drools.impl.StatefulKnowledgeSessionImpl.abortProcessInstance(StatefulKnowledgeSessionImpl.java:287)
at org.drools.command.runtime.process.AbortProcessInstanceCommand.execute(AbortProcessInstanceCommand.java:42)
at org.drools.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)
at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:345)
at org.drools.command.impl.CommandBasedStatefulKnowledgeSession.abortProcessInstance(CommandBasedStatefulKnowledgeSession.java:131)
at com.jbpm.core.test.ComplexProcessTest.abortProcess(ComplexProcessTest.java:316)
at org.apache.jsp.pages.jbpm.testTaskComplete_jsp._jspService(testTaskComplete_jsp.java:72)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Is it possible to abort the processInstance using any other way ?