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