2011-12-27 99 views
0

我正在將IPMS與Jade用於平臺間代理遷移。我使用的是IPMS 1.2的Jade 3.6。我已啓用slave1(原始平臺)和slave2(目標平臺)上的服務。 -accept-foreign-agents true選項也在兩個平臺上設置。我也增加了超時設置。遷移的代碼如下:JADE IPMS跨平臺代理遷移

AID remoteAMS = new AID("[email protected]:1099/JADE", AID.ISGUID); 
remoteAMS.addAddresses("http://slave2:7778/acc"); 
PlatformID destination = new PlatformID(remoteAMS); 
agent.doMove(destination); 

我只是得到上SLAVE1超時,但啓用詳細日誌記錄後,我發現了以下錯誤的SLAVE2:

WARNING: FAILURE-ams-9 - Receiver does not exist. 
jade.core.NotFoundException: getContainerID() failed to find agent [email protected] 
    at jade.core.MainContainerImpl.getContainerID(MainContainerImpl.java:1318) 
    at jade.core.messaging.MessagingService.deliverInLocalPlatfrom(MessagingService.java:1255) 
    at jade.core.messaging.MessagingService.deliverNow(MessagingService.java:1187) 
    at jade.core.messaging.MessageManager$Deliverer.run(MessageManager.java:152) 
    at java.lang.Thread.run(Thread.java:662) 

任何提示就如何調試這個?

回答

1

此問題是由於沒有在平臺上設置正確的主機名而導致的。 JADE需要能夠將127.0.0.1解析到主機上的'slave1'和目標平臺上的'slave2'。要解決這個問題,我編輯/ etc/hosts文件,並註釋掉本地主機上的兩個系統:

# 127.0.0.1  localhost 
127.0.0.1  slave1 
192.168.56.101 slave2 

也是一樣的SLAVE2。我在這裏詳細介紹了這個和其他一些錯誤:Agent Mobility with JADE and JIPMS

0

這個問題也可能是由JAVA RMI也使用的標準端口1099上運行JADE平臺引起的。當端口已被使用時收到相同的錯誤。您還應該檢查主機文件,這兩個計算機上的自由端口號以及是否在啓動JADE平臺的命令中輸入了正確的參數。當然,如果您允許使用JADE平臺所需的端口,請檢查您的firwall。

但是,這是我的經驗,當我安裝插件,並使其工作。

+0

歡迎來到Stack Overflow!請勿在您的帖子中使用簽名/標語。您的用戶箱計爲您的簽名,您可以使用您的個人資料發佈您喜歡的任何關於您自己的信息。 [關於簽名/標語的常見問題](http://stackoverflow.com/faq#signatures) – 2013-01-23 01:59:34

0

通過在IPMS 2.0中使用Jade 4.3.0,您可以輕鬆遷移您的代理。您需要做的是將amm放在您要移動代理的目的地的遠程AMS AID地址中。 是這樣的:

AID remoteAMS = new AID("[email protected]:1099/JADE", AID.ISGUID); 
remoteAMS.addAddresses("http://slave2:7778/acc"); 

PlatformID destination = new PlatformID(remoteAMS); 
agent.doMove(destination);