1 Reply Latest reply on Sep 25, 2006 12:26 PM by bongmunoz

    High volume/latency with async processes...

    bossbean

      I have a process that demands high volume - 1000 or more concurrent processes - and high latency - some async steps that require a 2-5 day wait. I realize there are countless way to address problem this outside of a BPMS, but i was wondering how Jbpm handled async nodes/actions and if resources outside of process/transactional data in persistent store are kept around during an async operation. My fear is that, for example, Threads and other resources outside of persistent store are held in a suspended state while waiting for a signal - instead of releasing all these resources and then re-allocating them when signalled. I realize there are transactional considerations in retaining thread based resources and possibly others as well, but any explanation about the resource management and scalability of the async module would be greatly appreciated.

      Thanks!

        • 1. Re: High volume/latency with async processes...
          bongmunoz

          jBPM can easily handle this volume of async processes. However, do not start an external process from an ActionHandler then sit in an Object.wait() call. One way to implement this is to use a State node to model the external process and start the external process by attaching an action on the node-enter event. You ActionHandler on the node-enter event should just start the external process then exit. Process execution will then pause at this State node.

          To continue process execution you will have to write code that runs independent of jBPM, like a Unix daemon. This code will be responsible for notifying jBPM when the external process has completed. It will retrieve the State node that is paused (suspended) then call signal() on it to move process execution forward.