2012-10-12 2 views
3

"countries"라고하는 캐시에 분산 캐시 스키마를 사용한다고 가정 해 보겠습니다. 세 개의 노드가 있습니다. 캐시에 일부 데이터를 넣었습니다. 이 캐시의 각 노드에있는 데이터를 알고 싶습니다. 나 도구가 있는지 알려 또는 우리가 어떻게 programaticaaly을 알 수 바랍니다코 히어 런스 노드에서 데이터를 보는 방법

답변

1

당신이 요구 될 수있는 몇 가지가 있습니다

  • 것은 당신이 데이터 가용성을 위해 중복 사본을 가지고 있음을 알고 싶은 경우는 , JMX에서 쉽게 찾을 수있다. 이 서비스

고 가용성 (HA) 상태 : "ServiceMBean"MBean는, 그 설명하는 "StatusHA"속성을 갖는다. MACHINE-SAFE는 주어진 컴퓨터에서 실행중인 모든 클러스터 구성원이 데이터 손실없이 중지 될 수 있음을 의미합니다. NODE-SAFE 값은 클러스터 구성원이 데이터 손실없이 중지 될 수 있음을 의미합니다. 값이 ENDANGERED이면이 서비스를 실행하는 클러스터 구성원의 비정상적인 종료로 인해 데이터가 손실 될 수 있음을 나타냅니다.

  • 당신은 키, 당신은 캐시의 서비스를받을 수 있습니다 소속 된 파티션 알고 싶다면 (CacheService 서비스를 = cache.getCacheService())와 (그것에서 KeyPartitioningStrategy를 얻을 KeyPartitioningStrategy 전략 = ((PartitionedService) 서비스) .getKeyPartitioningStrategy()) 키를 어디로 보낼지 전략을 물어보십시오 (int partition = strategy.getKeyPartition (key)).

  • 캐시 선호도를 사용하여 캐시 데이터 위치를 제어하는 ​​경우 분명히 그보다 약간 복잡합니다 .- 자세한 내용은 KeyPartitioningStrategy.getKeyPartition에 대한 JavaDoc을 참조하십시오.

  • 는 파티션, 당신은 단지 PartitionedService.getKeyOwner (객체 좋아요)의

  • 서버 측 동등한를 호출 할 수 있습니다 소속 된 클러스터 구성원 확인하려면 위의 모든 BackingMapManagerContext.getKeyPartition는()이며, 또한 편리한있다 BackingMapManagerContext.isKeyOwned() 메서드입니다.

지금 일관성에 정말 멋진 것은 당신이 일반적으로하지 않습니다 걱정이다에 대한 모든 작업이 한 번-및 전용-한 번 작업이 보장되기 때문에 데이터가 어디에, 그 결과는 조작이 HA 요구 사항을 충족 한 후에 만 ​​표시됩니다.

전체 공개를 위해 Oracle에서 일합니다. 이 게시물에 표현 된 의견 및 견해는 본인 소유이며, 반드시 고용주의 의견이나 견해를 반영하지 않습니다.

관련 문제