I'm wondering what the best way to initialise/launch drools flow in an appserver would be. I need to be able to support persistent workflows with transactions so that if I kill the appserver I can restart back to where I was. Long term, cluster failover (which is a similar requirement) would also be required.
I suspect that I should probably use some sort of ejb (stateless session bean or message driven bean) that initialises or resumes the process instances in the ejbCreate() method (since I believe using an ejb can help me support cluster failover as well).
How do you resume a bunch of persisted workflows? They would all either be waiting on an event, the presence of a fact in their session or a return from a call out to a work item (either a domain specific node or a human task).
When you restart, how do you recover the old session objects? Do you create and load a new KnowledgeBase? If the session is persisted I suppose there must be a hibernate query I can make to find all the existing instances. What do I do with them then?
I'm actuallly struggling working out what the right question is :-)
In short, I want to use jBPM in the JBoss appserver and have workflow instances reliably span restarts.
thanks.