Exception suspending a process
jorell Jun 5, 2006 2:02 PM
I have the following process definition:
<process-definition> <start-state> <transition to='CreateWOHandler'/> </start-state> <node name='CreateWOHandler'> <action class='DTVProcess.CreateWOHandler' /> <transition to='XPort'/> </node> <node name='XPort'> <action class='XPortHandler' /> <transition to='VTPS'/> </node> <node name='VTPS'> <action class='VTPSHandler' /> <transition to='BFRename'/> </node> <node name='BFRename'> <action class='BFRenameHandler' /> <transition to='end'/> </node> <end-state name='end' /> </process-definition>
I save this provess defintion and then run an insatnce of it:
processDefinition2.setName("CustomNodeTest"); JbpmConfiguration config = JbpmConfiguration.getInstance(); JbpmContext context = config.createJbpmContext(); context.getGraphSession().saveProcessDefinition(processDefinition2); ProcessInstance loadedProcessInstance = new ProcessInstance(processDefinition2); context.save(loadedProcessInstance); loadedProcessInstance.signal();
No I am susoending the process in one of the Action handlers ('XPortHandler'), as soon as I do this I get an exception thrown from the MessagingSession.SuspendMessages(Token token)
10:45:44,162 [main] ERROR JDBCExceptionReporter : [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'token'. at org.jbpm.graph.exe.Token.signal(Token.java:123) at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:217) at DTVProcess.WorkorderProcess.testNodeActions(WorkorderProcess.java:120) at DTVProcess.WorkorderProcess.main(WorkorderProcess.java:172) Caused by: org.jbpm.graph.def.DelegationException at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:349) at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:343) at org.jbpm.graph.def.Node.execute(Node.java:332) at org.jbpm.graph.def.Node.enter(Node.java:316) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:382) at org.jbpm.graph.def.Node.leave(Node.java:346) at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:120) at DTVProcess.CreateWOHandler.execute(CreateWOHandler.java:28) at org.jbpm.graph.def.Action.execute(Action.java:123) at org.jbpm.graph.def.Node.execute(Node.java:328) ... 9 more Caused by: org.hibernate.exception.SQLGrammarException: could not execute update query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:84) at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:326) at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:202) at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1111) at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94) at org.jbpm.db.MessagingSession.suspendMessages(MessagingSession.java:125) at org.jbpm.msg.db.DbMessageService.suspendMessages(DbMessageService.java:63) at org.jbpm.graph.exe.Token.suspendMessages(Token.java:507) at org.jbpm.graph.exe.Token.suspend(Token.java:482) at org.jbpm.graph.exe.ProcessInstance.suspend(ProcessInstance.java:287) at DTVProcess.XPortHandler.execute(XPortHandler.java:20) at org.jbpm.graph.def.Action.execute(Action.java:123) at org.jbpm.graph.def.Node.execute(Node.java:328) ... 17 more Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'token'. at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source) at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source) at com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown Source) at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:75) ... 29 more
If I dont save the process definition at the begining, it goes through fine. Please let me know if you see a problem.
Imran