[jboss-user] [JBoss jBPM] - Re: jBPM 3.1 beta 2 is not thread safe !

jonabbey do-not-reply at jboss.com
Mon Aug 28 18:25:01 EDT 2006


"falazar" wrote : This is not corrected in the 3.2 CVS?
  | 
  | jpdl/jar/src/main/java/org/jbpm/configuration/ObjectFactoryImpl.java:  public synchronized Object createObject(String name) {
  | jpdl/jar/src/main/java/org/jbpm/configuration/ObjectFactoryImpl.java:  public Object createObject(int index) {
  | jpdl/jar/src/main/java/org/jbpm/configuration/ObjectFactoryImpl.java:  public Object createObject(ObjectInfo objectInfo) {
  | 
  | We have setup an RMI call, and are gettting the closed multiple times error as well.
  | 
  | James

It appears that the problem is that the JbpmConfiguration class uses ThreadLocalStorage for the jbpmContextStacks.. If we attempt to hold a context open and call it from multiple threads, we'll see this error.

Since RMI is not designed to map all calls from a client into a single thread, this means we can't reliably call JBPM methods without creating a worker thread on the server and using that for all processing from a single client.

I presume something similar is happening on the servlet side, where multiple servlet calls are winding up executing on different threads.

I don't understand how this design feature can really work in a J2EE environment.  Far better to give each client context its own JbpmContext object, synchronize the methods, and then let anyone call close() on it, without regard to what thread is doing the work.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3967947#3967947

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3967947



More information about the jboss-user mailing list