<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 77.95pt 1.0in 77.95pt;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>I use a Ruleagent with the following params:<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>localCacheDir=…<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>url=…<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>poll=30<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>name=eventexpertrules<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>Here is my session initialization:<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>RuleAgent agent =
RuleAgent.newRuleAgent("/rules.properties");<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>RuleBase retValue = agent.getRuleBase();<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>final RuleBase ruleBase = agent.getRuleBase();<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>session = ruleBase.newStatefulSession();<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>DroolsLogger drlogger = new DroolsLogger(session); // add
logger <o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>//Insert Event Processor Instance as global<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>session.setGlobal("processor", this);<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>Here is the stack trace of the thread that updates the rule base<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>"Timer-2" daemon prio=3 tid=0x0000000002356800 nid=0x24
waiting for monitor entry [0xfffffd7fe28b7000..0xfffffd7fe28b7a20]<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> java.lang.Thread.State: BLOCKED (on object monitor)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:433)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> - waiting to lock <<b><span
style='font-weight:bold'>0xfffffd7feb474680</span></b>> (a
org.drools.reteoo.ReteooStatefulSession)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
org.drools.base.FireAllRulesRuleBaseUpdateListener.beforeRuleBaseUnlocked(FireAllRulesRuleBaseUpdateListener.java:29)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
org.drools.event.RuleBaseEventSupport.fireBeforeRuleBaseUnlocked(RuleBaseEventSupport.java:168)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
org.drools.common.AbstractRuleBase.unlock(AbstractRuleBase.java:351)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
org.drools.agent.PackageProvider.applyChanges(PackageProvider.java:73)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:320)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
org.drools.agent.RuleAgent$2.run(RuleAgent.java:438)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
java.util.TimerThread.mainLoop(Timer.java:512)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'> at
java.util.TimerThread.run(Timer.java:462)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>Here is the stack trace of my application
that basically inserts facts and fires rules …<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>"ActiveMQ Session Task" daemon
prio=3 tid=0x0000000002564400 nid=0x142e in Object.wait()
[0xfffffd7fe01dd000..0xfffffd7fe01ddaa0]<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'> java.lang.Thread.State:
WAITING (on object monitor)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at java.lang.Object.wait(Native Method)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
- waiting on <0xfffffd7feb49a9e0> (a
org.drools.util.concurrent.locks.ReentrantLock$NonfairSync)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at java.lang.Object.wait(Object.java:485)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at org.drools.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:106)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
- locked <0xfffffd7feb49a9e0> (a
org.drools.util.concurrent.locks.ReentrantLock$NonfairSync)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at org.drools.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:195)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at org.drools.common.AbstractWorkingMemory.getGlobal(AbstractWorkingMemory.java:397)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at
com.daxtechnologies.optima.fault.eventprocessor.Rule_EventForwarder_0ConsequenceInvoker.evaluate(Unknown
Source)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:550)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
- locked <0xfffffd7feb49a3f8> (a org.drools.common.DefaultAgenda)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:514)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:471)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
- locked <<b><span style='font-weight:bold'>0xfffffd7feb474680</span></b>>
(a org.drools.reteoo.ReteooStatefulSession)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:433)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'> -
locked <0xfffffd7feb474680> (a org.drools.reteoo.ReteooStatefulSession)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at
com.daxtechnologies.optima.fault.eventprocessor.fault.level2.maps.EventExpertProcessor.processEventVO(EventExpertProcessor.java:147)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
- locked <0xfffffd7feb474a18> (a
com.daxtechnologies.optima.fault.eventprocessor.fault.level2.maps.EventExpertProcessor)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>
at
com.daxtechnologies.optima.fault.eventprocessor.fault.level2.maps.EventExpertProcessor.doProcessEvent(EventExpertProcessor.java:70)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>As you see my app thread waits for
something …<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>thanks<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>--zoly<o:p></o:p></span></font></p>
</div>
</body>
</html>