2014-12-21 3 views
0

6.5.6을 사용하고 있습니다. 동일한 데스크탑에서 2 개의 노드를 실행합니다. 하나는 특허가 있고, 하나는 IDE (일식)에서 실행되는 client_only입니다. 배치 모드로 'CONTINUOUS'를 사용합니다. 'partitioned'라는 캐시가 하나뿐입니다.GridRunnable 클래스의 gridgain zero dedeployment

내 문제는 : 'client_only'노드를 시작하는 클래스에서 정의 된 GridRunnable 정적 클래스가 있고 실행 메서드에서 'hello world'만 인쇄하십시오. 처음에는 잘 돌아갑니다. Hello 문자열은 '분할 된'노드에 인쇄됩니다. '분할 된'노드를 계속 실행하십시오. 그런 다음 문자열을 'hello world x'로 변경했습니다. 내 IDE에 저장하고 'client_only'를 다시 시작하면 '분할 된'하나의 'hello world'가 계속 인쇄됩니다. 'client_only'를 다시 한 번 다시 시작하십시오. 이번에는 'client_only'노드에서 'hello world x'를 인쇄하기 시작합니다.

GridRunnable에서 코드 변경 사항을 단독으로 배포해야합니다. 내가 어디서 잘못했는지 모르겠다. 도와주세요 !

+0

한 번 더 정보 : grid.comput()을 사용하고 있습니다. run (..). get(); – winf

답변

0

GridRunnable을 코드를 변경할 때마다 자동으로 다시 배포하려면 배포 모드를 SHARED으로 변경해야합니다. 즉, 배포를 시작한 모든 클러스터 멤버가 없어지면 클로저가 배포 취소됩니다. 즉, 해당 노드는 CLIENT_ONLY 노드입니다.

그러나 캐쉬에있는 데이터에도 동일하게 적용됩니다. 캐쉬가 해제되고 캐쉬가 지워집니다. 이를 방지하려면 캐시 할 데이터를 각 데이터 노드의 클래스 경로에 포함시켜야합니다. 로컬 클래스 경로의 클래스는 배포 취소되지 않으므로이 경우 캐시가 지워지지 않습니다.

+0

감사합니다. 그것은 작동합니다! – winf