Using RuleBase in multithread application server environment
------------------------------------------------------------
Key: JBRULES-1330
URL:
http://jira.jboss.com/jira/browse/JBRULES-1330
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Rule Flow
Affects Versions: 4.0.3
Environment: Red Hat Linux as OS, weblogic 9.2 using jrockit-1.5.0_10
Reporter: Navaljit Bhasin
We are deploying an applcation which has one major component which executes rules.
At the startup of the application server, we load the various rules and save them in a
hashmap with appropriate key. The value of these HashMaps is RuleBase. This is part of a
singleton service.
The applcation is based on JMS. A MDB receives message, calls the sigleton service to get
stateful session from a specific RuleBase ( saved in HashMap by key as mentioned above).
This singleton service get the RuleBase from Map, call newStatefulSession(false) on this
RuleBase object and return the new StatefulSession.
This works fine as long as we have one MDB on the application server. When we increase the
number of MDB's to more than one, and both MDB's process the messages( different
messages) simultaneously, the results from stateful session rule firing are messed up. It
skips amny valid LHS and so on.
I even tried using the Stateless Session, but the results are still messed up. So my
question is:
Can we use the Rulebase in multithreaded environment ? My understanding was that we can
use it. There should be no interaction between various stateful sessions received from
same rulebase object. If we can't use it this way, the we have build it form
PackageBuilder for every invocation. There are lots of complex rules and for hundreds of
calls it adds up to considerable waste of resources.
Thanks for reading this bug report
Can you please post or email me the code to use the statefule sessions from a RuleBase
object in multithreaded environment?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira