Howdy folks..

Just added RuleBase.createTransactionalWorkingMemory() which creates,
well, a TransactionalWorkingMemory.

The TWM extends normal WorkingMemory, but adds commit() and abort()
methods.  It basically just caches assert/modify/retract calls
until commit() is called, and then performs all rule stuff at that
point.  Before doing a commit(), all that assertObject(..) does is
put the object into a Set and retractObject(..) just removes it
from the set, so these are very lightweight. 

You'll of course block longer on commit() though, since it must then
process all objects on your assertion list.

After calling either commit() or abort(), you may re-use the TWM, as
its left in a clean state.

Ideally, it could be tied to a database transaction, so they commit
or abort in unison.  

        -bob


_______________________________________________
drools-interest mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/drools-interest

Reply via email to