<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><div id="yiv911495560"><table cellspacing="0" cellpadding="0" border="0" id="bodyDrftID" class=""><tbody><tr><td id="drftMsgContent" style="font:inherit;"><div id="yiv451822529"><table cellspacing="0" cellpadding="0" border="0" id="bodyDrftID" class=""><tbody><tr><td id="drftMsgContent" style="font:inherit;">Hello,<div><br><div>I am new to drools and trying to work with the knowledge agent for the automatic loading of rules into the knowledge base from a directory and then firing all the rules. Am using the ChangeSet xml File to configure the rule directory. Actually the problem is: the rules are fired for the first time only, but when I put a new rule file in the directory the new rules does't fire.</div><div><br></div><div>plz find the source code in the attachment</div><div><br></div><div>rgards,</div><div>nadeem</div><div><br></div><div><br></div><div>MY
CODE:</div><div><div>public class KnowAgent {</div><div><span class="Apple-tab-span" style="white-space:pre;">        </span>KnowledgeBase buildKBA(KnowledgeBase kb){</div><div><span class="Apple-tab-span" style="white-space:pre;">                </span>KnowledgeAgent kagent =
KnowledgeAgentFactory.newKnowledgeAgent( "MyAgent" );<span class="Apple-tab-span" style="white-space:pre;">                </span></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre;">                </span></div><div><span class="Apple-tab-span" style="white-space:pre;">                </span>kagent.applyChangeSet( ResourceFactory.newClassPathResource("resChangeSet.xml") );</div><div><span class="Apple-tab-span" style="white-space:pre;">                </span></div><div><span class="Apple-tab-span" style="white-space:pre;">                </span>ResourceFactory.getResourceChangeNotifierService().start();</div><div><span class="Apple-tab-span" style="white-space:pre;">                </span>ResourceFactory.getResourceChangeScannerService().start();</div><div><span class="Apple-tab-span" style="white-space:pre;">                </span>kb = kagent.getKnowledgeBase();</div><div><span class="Apple-tab-span" style="white-space:pre;">                </span>return kb;</div><div><span class="Apple-tab-span" style="white-space:pre;">
        </span>}</div><div>}</div><div>--------------------------------------------------</div><div><div>public class RuleRunnerKnowledgeAgent {</div><div><span class="Apple-tab-span" style="white-space:pre;">        </span>private KnowAgent myKnowAgent = new KnowAgent();</div><div><span class="Apple-tab-span" style="white-space:pre;">        </span>private KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();</div><div><span class="Apple-tab-span" style="white-space:pre;">        </span>private KnowledgeRuntimeLogger logger;</div><div><span class="Apple-tab-span" style="white-space:pre;">        </span>private StatefulKnowledgeSession ksession;</div><div><br></div><div> public void RuleRunnerKnowledgeAgent(String[] rules,</div><div> Object[] facts) throws Exception {</div><div> kbase = myKnowAgent.buildKBA(kbase);
</div><div> ksession = kbase.newStatefulKnowledgeSession();</div><div> logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "agentkblog");</div><div> ksession.fireAllRules();</div><div> }</div><div>}</div></div><div>--------------------------------------------------</div><div><div><?xml version="1.0" encoding="utf-8"?></div><div><change-set xmlns='http://drools.org/drools-5.0/change-set'</div><div> xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'</div><div> xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' ></div><div> <add></div><div> <resource source='file:src/main/rules/org/drools/prepare/collection/' type='DRL'
/></div><div> </add></div><div></change-set></div><div>--------------------------------------------------</div><div><div>rule "Rule 01" </div><div> when</div><div> eval (1==1)</div><div> then</div><div> System.out.println("Rule 01 Works");</div><div>end</div><div><br></div><div>2nd DRL file is also same like, but with diff rule and file name and output.</div><div>--------------------------------------------------</div><div>CONSOLE OUTPUT</div><div><div>[2009:11:329 00:11:762:info] ResourceChangeNotification created</div><div>[2009:11:329 00:11:764:info] ResourceChangeScanner created with default interval=60</div><div>[2009:11:329 00:11:765:debug] ResourceChangeNotification monitor added monitor=org.drools.io.impl.ResourceChangeScannerImpl@19134f4</div><div>[2009:11:329 00:11:766:info] KnowledgAgent created, with
configuration:</div><div>monitorChangeSetEvents=true scanResources=true scanDirectories=true</div><div>[2009:11:329 00:11:766:info] KnowledegAgent has started listening for ChangeSet notifications</div><div><br></div><div>(null: 4, 101): schema_reference.4: Failed to read schema document 'drools-change-set-5.0.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.</div><div>(null: 4, 101): cvc-elt.1: Cannot find the declaration of element 'change-set'.</div><div>(null: 5, 9): schema_reference.4: Failed to read schema document 'drools-change-set-5.0.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.</div><div>(null: 7, 90): schema_reference.4: Failed to read schema document 'drools-change-set-5.0.xsd', because 1) could not find the document; 2) the document could not be read;
3) the root element of the document is not <xsd:schema>.</div><div>[2009:11:329 00:11:873:info] KnowledgAgent applying ChangeSet</div><div>[2009:11:329 00:11:875:debug] KnowledgeAgent subscribing to directory=[UrlResource path='file:src/main/rules/org/drools/prepare/collection/']</div><div>[2009:11:329 00:11:875:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@12d7a10 to resource=[UrlResource path='file:src/main/rules/org/drools/prepare/collection/']</div><div>[2009:11:329 00:11:875:debug] ResourceChangeScanner subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl@1feca64 to resource=[UrlResource path='file:src/main/rules/org/drools/prepare/collection/']</div><div>[2009:11:329 00:11:877:debug] KnowledgeAgent subscribing to directory content resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1.drl']</div><div>[2009:11:329 00:11:877:debug]
ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@12d7a10 to resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1.drl']</div><div>[2009:11:329 00:11:877:debug] ResourceChangeScanner subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl@1feca64 to resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1.drl']</div><div>[2009:11:329 00:11:878:debug] KnowledgeAgent ChangeSet requires KnowledgeBuilder</div><div>[2009:11:329 00:11:878:debug] KnowledgeAgent rebuilding KnowledgeBase using ChangeSet</div><div>[2009:11:329 00:11:171:debug] KnowledgeAgent building resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1.drl']</div><div>[2009:11:329 00:11:601:info] KnowledgeAgent new KnowledgeBase now built and in use</div><div>[2009:11:329 00:11:603:info] ResourceChangeNotification has started listening
for ChangeSet publications</div><div>[2009:11:329 00:11:603:debug] ResourceChangeNotification thread is waiting for queue update</div><div><br></div><div>[2009:11:329 00:11:604:info] ResourceChangeNotification scanner has started</div><div>[2009:11:329 00:11:605:debug] ResourceChangeScanner attempt to scan 2 resources</div><div>[2009:11:329 00:11:605:debug] ResourceChangeScanner scanning directory=[UrlResource path='file:src/main/rules/org/drools/prepare/collection/']</div><div>[2009:11:329 00:11:606:debug] ResourceChangeScanner thread is waiting for 60</div><div>Rule 01 Works</div><div>[2009:11:329 00:11:607:debug] ResourceChangeScanner attempt to scan 2 resources</div><div>[2009:11:329 00:11:608:debug] ResourceChangeScanner scanning directory=[UrlResource path='file:src/main/rules/org/drools/prepare/collection/']</div><div>[2009:11:329 00:11:609:debug] ResourceChangeScanner new resource=[FileResource
file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl']</div><div>[2009:11:329 00:11:609:debug] ResourceChangeNotification subscribing directory=[UrlResource path='file:src/main/rules/org/drools/prepare/collection/'] content resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl']</div><div>[2009:11:329 00:11:609:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@12d7a10 to resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl']</div><div>[2009:11:329 00:11:610:debug] ResourceChangeScanner subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl@1feca64 to resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl']</div><div>[2009:11:329 00:11:611:debug] ResourceChangeScanner modified resource=[FileResource
file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl'] : -1 : 1259108256456</div><div>[2009:11:329 00:11:611:debug] ResourceChangeNotification received ChangeSet notification</div><div>[2009:11:329 00:11:612:debug] ResourceChangeScanner thread is waiting for 60</div><div>[2009:11:329 00:11:612:debug] ResourceChangeNotification processing ChangeSet</div><div>[2009:11:329 00:11:612:debug] ResourceChangeNotification ChangeSet added resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl'] for listener=org.drools.agent.impl.KnowledgeAgentImpl@12d7a10</div><div>[2009:11:329 00:11:613:debug] ResourceChangeNotification ChangeSet modified resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl'] for listener=org.drools.agent.impl.KnowledgeAgentImpl@12d7a10</div><div>[2009:11:329 00:11:613:debug] KnowledgeAgent received ChangeSet changed
notification</div><div>[2009:11:329 00:11:613:debug] ResourceChangeNotification thread is waiting for queue update</div><div>[2009:11:329 00:11:613:info] KnowledgAgent applying ChangeSet</div><div>[2009:11:329 00:11:613:debug] KnowledgeAgent subscribing to resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl']</div><div>[2009:11:329 00:11:614:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@12d7a10 to resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl']</div><div>[2009:11:329 00:11:614:debug] KnowledgeAgent ChangeSet requires KnowledgeBuilder</div><div>[2009:11:329 00:11:614:debug] KnowledgeAgent rebuilding KnowledgeBase using ChangeSet</div><div>[2009:11:329 00:11:619:debug] KnowledgeAgent building resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1.drl']</div><div>[2009:11:329
00:11:749:debug] KnowledgeAgent building resource=[FileResource file='src\main\rules\org\drools\prepare\collection\objectCollection1A.drl']</div><div>[2009:11:329 00:11:840:info] KnowledgeAgent new KnowledgeBase now built and in use</div><div><br></div></div><div><br></div><div><br></div><div><br></div></div></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table></div></td></tr></table><br>