[rules-users] Question about backing up a flow

Nair, Mahesh Mahesh.Nair at qwest.com
Mon Oct 19 12:16:07 EDT 2009


Hello everyone,

I'm new to drools & I'm trying my hand at creating a rule-flow in which I can back a couple of steps &
the KnowledgeSession is restored to the same state it was in earlier. I'm using Drools 5.1.0 M1 & Eclipse 3.5.

I have a rule-flow with the following nodes:
A->B->C
where A would be a node asking for an input (our fact), B would be a Rule Task that would apply certain rules on our fact &
at C, I may decide that I need to back up to node A. Both A & C are custom work items.

I've managed to rollback the transaction (I borrowed a lot of code from the test classes in the source, thanks a ton for them).
But I just can't get my process to start again.

I'll paste a couple of lines of code from my test class below:
.....
ProcessInstance pi = ksession.startProcess("sampleflow");
ksession.fireAllRules();

ut = (UserTransaction) new InitialContext().lookup( "java:comp/UserTransaction" );
ut.begin();//Is beginning the transaction boundary here correct?
.....
//Now I roll back the transaction depending on the input at node C
ut.rollback();
.....
//And recreate the knowledge session
ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(id, kbase, null, env);

I expected the session to restart the process from node A once it was recreated. Am I going in the right direction?
Or is my basic understanding of how session persistence works in Drools Flow flawed?

I'd really appreciate a push in the right direction.

Thanks in advance,
Mahesh.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091019/3e0b7a0c/attachment.html 


More information about the rules-users mailing list