2011-12-27 2 views
0

Я использую IPMS с Jade для миграции межплатформенного агента. Я использую Jade 3.6 с IPMS 1.2. Я включил службы как на 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» на целевых платформах. Чтобы устранить эту проблему, я отредактировал мой и т.д./файл/хостов и закомментирована Localhost на обеих системах:

# 127.0.0.1  localhost 
127.0.0.1  slave1 
192.168.56.101 slave2 

То же самое касается slave2. Я рассмотрел эту и некоторые другие ошибки в подробном учебнике здесь: Agent Mobility with JADE and JIPMS.

0

Проблема также может быть вызвана запуском платформы JADE на стандартном порту 1099, который также используется JAVA RMI. Такая же ошибка возникает, когда порт уже используется. Вы также должны проверить файл hosts, номер свободного порта на обоих компьютерах, и если параметры правильно введены в вашу команду, которая запускает платформу JADE. Конечно, всегда проверяйте свой firwall, если допустимый порт, который вы используете для платформы JADE, разрешен.

Но это мой опыт, когда я установил плагин и заставил его работать.

+0

Добро пожаловать в переполнение стека! Пожалуйста, не используйте подписи/метки в своих сообщениях. Ваш ящик пользователя считается вашей подписью, и вы можете использовать свой профиль для публикации любой информации о себе, как вам нравится. [Часто задаваемые вопросы о подписках/тегах] (http://stackoverflow.com/faq#signatures) –

0

Используя Jade 4.3.0 с IPMS 2.0, вы можете легко перенести своего агента. Что вам нужно сделать, так это поставить амбиции в адрес remoteAMS 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); 
Смежные вопросы