[
http://jira.jboss.com/jira/browse/JBRULES-1351?page=all ]
paata lominadze updated JBRULES-1351:
-------------------------------------
Description:
Server application loads precompiled rule package into memory
then it creates as many rulebases as much threads are there.
(every thread has its own rulebase and stateless session)
application receives messages, then it dispatches it to one of the threads.
thread itself executes rules on its own stateless session.
rules are written such a way so that at least one rule should fire.
but sometimes rules don't fire.
in such situations we are passing same facts to rules engine second time,
on the same rulebase, using same stateless session. this time one rule is selected.
facts are not modified during two runs. they also dont change from rules.
this makes us to think that the bug is in rules engine, not in the application rule design
logic.
going from stateless to stateful session didnot solve this problem
fact shadowing is disabled
rules have unique salience.
all rules belong to same activation group.
we had one rulebase for all the threads and were creating one stateless session
per thread. but "misfiring" did happen much often this way. giving each thread
its own
rulebase reduced "misfirings" dramatically
this bug started to appear after upgrading from 3.0.5 to 4.0.x, currently we are using
4.0.3
i think this problem has same roots as this bug:
http://jira.jboss.org/jira/browse/JBRULES-1330
UPDATE:
here is someone having exactly same problem:
http://www.nabble.com/Multithreading-use-of-RuleBase.newStatefulSession-o...
author of above post also managed to attach sample code with example scenario where the
problem occurs
was:
Server application loads precompiled rule package into memory
then it creates as many rulebases as much threads are there.
(every thread has its own rulebase and stateless session)
application receives messages, then it dispatches it to one of the threads.
thread itself executes rules on its own stateless session.
rules are written such a way so that at least one rule should fire.
but sometimes rules don't fire.
in such situations we are passing same facts to rules engine second time,
on the same rulebase, using same stateless session. this time one rule is selected.
facts are not modified during two runs. they also dont change from rules.
this makes us to think that the bug is in rules engine, not in the application rule design
logic.
going from stateless to stateful session didnot solve this problem
fact shadowing is disabled
rules have unique salience.
all rules belong to same activation group.
we had one rulebase for all the threads and were creating one stateless session
per thread. but "misfiring" did happen much often this way. giving each thread
its own
rulebase reduced "misfirings" dramatically
this bug started to appear after upgrading from 3.0.5 to 4.0.x, currently we are using
4.0.3
i think this problem has same roots as this bug:
http://jira.jboss.org/jira/browse/JBRULES-1330
Rules not firing in heavely threaded application
------------------------------------------------
Key: JBRULES-1351
URL:
http://jira.jboss.com/jira/browse/JBRULES-1351
Project: JBoss Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 4.0.2, 4.0.3
Reporter: paata lominadze
Server application loads precompiled rule package into memory
then it creates as many rulebases as much threads are there.
(every thread has its own rulebase and stateless session)
application receives messages, then it dispatches it to one of the threads.
thread itself executes rules on its own stateless session.
rules are written such a way so that at least one rule should fire.
but sometimes rules don't fire.
in such situations we are passing same facts to rules engine second time,
on the same rulebase, using same stateless session. this time one rule is selected.
facts are not modified during two runs. they also dont change from rules.
this makes us to think that the bug is in rules engine, not in the application rule
design logic.
going from stateless to stateful session didnot solve this problem
fact shadowing is disabled
rules have unique salience.
all rules belong to same activation group.
we had one rulebase for all the threads and were creating one stateless session
per thread. but "misfiring" did happen much often this way. giving each thread
its own
rulebase reduced "misfirings" dramatically
this bug started to appear after upgrading from 3.0.5 to 4.0.x, currently we are using
4.0.3
i think this problem has same roots as this bug:
http://jira.jboss.org/jira/browse/JBRULES-1330
UPDATE:
here is someone having exactly same problem:
http://www.nabble.com/Multithreading-use-of-RuleBase.newStatefulSession-o...
author of above post also managed to attach sample code with example scenario where the
problem occurs
--
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