2013-01-16 42 views
0

我有一個Drools Expert Knowledge的簡單用例。我正在使用Drools 5.3.0.Final,我的規則已經編入Guvnor 5.3.0.Final。爲什麼我的KnowledgeAgent沒有考慮規則更改?

我的變更xml文件如下所示:

<add> 
     <resource type="PKG" source="http://ssmdeoasd01.susalud.com:7777/drools-guvnor/org.drools.guvnor.Guvnor/package/co.com.sura.seguros.adultomayor.consultas/LATEST"/> 
    </add> 

臨屋PKG包含一個簡單的DTABLE規則。

當我更改DTABLE並將其上傳到Guvnor(應用程序仍在運行時)時,Drools Expert確實會識別此更改,但不會應用它。控制檯看起來如下:

Compilando reglas ... 
Reglas compiladas ... 
Tiempo de compilacion de reglas: 0 ms 
Obteniendo manager ... 
Manager obtenido ... 
Obteniendo sesión de conocimiento ... 
listKnowledgePackages.size(): 1 
Sesión de conocimiento obtenida ... 
3 Padre 
2 Hermanos 
1 Conyuge 
[2013-01-16 15:54:17,670:debug] ResourceChangeScanner attempt to scan 1 resources 
[2013-01-16 15:54:17,684:debug] ResourceChangeScanner modified resource=[UrlResource path='http://ssmdeoasd01.susalud.com:7777/drools-guvnor/org.drools.guvnor.Guvnor/package/co.com.sura.seguros.adultomayor.consultas/LATEST'] : 1358369287000 : 1358369637000 
[2013-01-16 15:54:17,684:debug] ResourceChangeNotification received ChangeSet notification 
[2013-01-16 15:54:17,684:debug] ResourceChangeScanner thread is waiting for 60 seconds. 
[2013-01-16 15:54:17,684:debug] ResourceChangeNotification processing ChangeSet 
[2013-01-16 15:54:17,684:debug] ResourceChangeNotification ChangeSet modified resource=[UrlResource path='http://ssmdeoasd01.susalud.com:7777/drools-guvnor/org.drools.guvnor.Guvnor/package/co.com.sura.seguros.adultomayor.consultas/LATEST'] for [email protected] 
[2013-01-16 15:54:17,686:debug] ResourceChangeNotification thread is waiting for queue update 
Compilando reglas ... 
Reglas compiladas ... 
Tiempo de compilacion de reglas: 0 ms 
Obteniendo manager ... 
Manager obtenido ... 
Obteniendo sesión de conocimiento ... 
listKnowledgePackages.size(): 1 
Sesión de conocimiento obtenida ... 
3 Padre 
2 Hermanos 
1 Conyuge 

即使KnowledgeAgent標識的變化,規則不斷編譯相同,沒有變化的結果reflecte。

我對KnowledgeAgent沒有特別的配置,也沒有特定的擴展。我已經使用了默認偵聽器,所以相反。

這是怎麼發生的?

回答

0

我犯了一個錯誤。

我在用現有的知識庫構建代理。然後,當代理人實例化時,我從該代理人那裏獲得基地並保持對該基地的引用,以便始終從該基地獲得會話。我認爲,如果代理商的基地發生了變化,那麼我的基地 - 從代理商那裏獲得 - 也發生了變化。

然後,當Guvnor中的規則發生變化時,代理確實完成了它的工作並重新創建了它的知識庫,但是由於我始終引用在代理實例化後立即獲得的基礎並從該舊知識庫獲取會話,執行的規則是舊基地中的規則。

參考文件現在就可以了,規則的變化反映在執行中:)

相關問題