2011-12-27 2 views
0

플랫폼 간 에이전트 마이그레이션을 위해 Jade와 함께 IPMS를 사용하고 있습니다. 저는 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'로 확인할 수 있어야합니다. 이 문제를 해결하려면, 내/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 플랫폼을 위해 사용하는 원하는 포트가 허용되면 항상 물론 당신의 전나무를 확인하십시오.

하지만 플러그인을 설치하고 작동 시켰을 때의 경험이었습니다.

+0

스택 오버 플로우에 오신 것을 환영합니다! 게시물에 서명/태그 라인을 사용하지 마십시오. 사용자 상자는 서명으로 간주되며 프로필을 사용하여 원하는 자신에 대한 정보를 게시 할 수 있습니다. [서명/태그 라인에 관한 FAQ] (http://stackoverflow.com/faq#signatures) –

0

Jade 4.3.0을 IPMS 2.0과 함께 사용하면 에이전트를 쉽게 마이그레이션 할 수 있습니다. 당신이해야 할 일은 amm을 당신의 에이전트를 옮길 목적지의 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); 
관련 문제