[JBoss jBPM] - Row was updated or deleted by another transaction
by luiseterc
Hi,
I am using the jbpm console for orchestrate my process definition. However, some of the process nodes request asynchronous tasks to external systems. When those tasks finish, the workflow engine receives an incoming message through JMS (openMQ). What I'm currently doing in response to that message is just to signal the root token to the next node:
| try {
|
| MapMessage mapMessage = (MapMessage)message;
| JbpmConfiguration conf = JbpmConfiguration.getInstance();
| JbpmContext ctx = conf.createJbpmContext();
| try {
|
| ProcessInstance processInstance = ctx.loadProcessInstanceForUpdate(Long.parseLong(mapMessage.getString("processInstance")));
| processInstance.getRootToken().signal();
|
| }finally {
| ctx.close();
| }
|
|
It works but I'm getting this obvious exception:
| ERROR - AbstractFlushingEventListener.performExecutions(301) | Could not synchronize database state with session
| org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.exe.Token#64]
| at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
| at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
| at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
| at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
| at org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:256)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:214)
| at org.jbpm.svc.Services.close(Services.java:225)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at com.marketsentinel.workflow.messaging.MessageListener.onMessage(MessageListener.java:42)
| at com.sun.messaging.jmq.jmsclient.MessageConsumerImpl.deliverAndAcknowledge(MessageConsumerImpl.java:338)
| at com.sun.messaging.jmq.jmsclient.MessageConsumerImpl.onMessageToListenerFromReceiveQueue(MessageConsumerImpl.java:316)
| at com.sun.messaging.jmq.jmsclient.SessionReader.onMessageToLateListeners(SessionReader.java:171)
| at com.sun.messaging.jmq.jmsclient.SessionReader.deliver(SessionReader.java:149)
| at com.sun.messaging.jmq.jmsclient.ConsumerReader.run(ConsumerReader.java:189)
| at java.lang.Thread.run(Thread.java
|
Since I'm creating a new different hibernate session/Jbpm context from the message listener. I wonder how could I get the JbpmContext used by the console in order to use the same session to update the token status.
I've been searching the jbpm4jsf source code and all the action classes use a static "context" . Where does that object is instanciated?
Thanks.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4160533#4160533
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4160533
17 years, 9 months
[JBoss jBPM] - Jbpm-jpdl failed to launch login console in JBoss-4.0.2GA
by soumya_in
I tried to deploy JBPM ear in 4.0.4GA.
It deployed....
I tried the same with 4.0.2GA
Got following exception while launching the login console though sucessfully deployed the ear.
2008-06-25 16:35:54,020 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/jbpm
| -console].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
| java.lang.NoSuchMethodError: org.w3c.dom.Element.getTextContent()Ljava/lang/String;
| at org.jbpm.jsf.core.config.ConfigurationLocator.handleAuthenticationService(Configu
| rationLocator.java:177)
| at org.jbpm.jsf.core.config.ConfigurationLocator.handleConfiguration(ConfigurationLo
| cator.java:229)
| at org.jbpm.jsf.core.config.ConfigurationLocator.searchWar(ConfigurationLocator.java
| :275)
| at org.jbpm.jsf.core.config.ConfigurationLocator.configure(ConfigurationLocator.java
| :60)
| at org.jbpm.jsf.core.config.ConfigurationLocator.getInstance(ConfigurationLocator.ja
| va:51)
| at org.jbpm.jsf.core.phase.ProcessFilePhaseListener.beforePhase(ProcessFilePhaseList
| ener.java:45)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:218)
| at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilte
| rChain.java:252)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.j
| ava:173)
| at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:
| 672)
| at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatch
| er.java:463)
| at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.ja
| va:398)
| at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java
| :301)
| at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticato
| r.java:238)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java
| :446)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
|
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
| (Http11Protocol.java:744)
| at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527
| )
| at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.ja
| va:112)
| at java.lang.Thread.run(Thread.java:595)
| 2008-06-25 16:35:54,020 WARN [org.apache.catalina.authenticator.FormAuthenticator] Unexpected error
| forwarding to login page
| javax.servlet.ServletException: Servlet execution threw an exception
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilte
| rChain.java:275)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.j
| ava:173)
| at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:
| 672)
| at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatch
| er.java:463)
| at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.ja
| va:398)
| at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java
| :301)
| at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticato
| r.java:238)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java
| :446)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
|
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
| (Http11Protocol.java:744)
| at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527
| )
| at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.ja
| va:112)
| at java.lang.Thread.run(Thread.java:595)
Looked into JDK 1.5/JDK-1.4 API this method is not available. However this error is not thrown by 4.0.4 version.
Process gets deployed from eclipse console fine.
Following jars required during deployment of the ear.
Hibernate 3.0 jar
Jboss-hibernate.jar
Jboss-backport-concurrent.jar
Commons-io_xxx.jar
Commons-fileupload.jar
Commons-collections.jar
Does anybody have an idea or tried this.
Tell me if I am going wrong anywhere.
Thanks in advance
Regards
Soumya
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4160530#4160530
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4160530
17 years, 9 months