2010-07-16 4 views
1

방금 ​​오라클의 Coherence 캐시 작업을 시작했고 다음과 같은 사실을 알았습니다. 캐시에서 ConcurrentHashMap 객체를 넣으면 검색 할 때 정상적인 HashMap으로 변환 된 것을 볼 수 있습니다.일관성 캐시 | ConcurrentHashMap in, HashMap out

내부 변환을 피하기 위해 수행 할 수있는 조치는 무엇입니까?

답변

0

나는 그것을 알아 냈다. 구성 xml에서 시리얼 장치 > 항목을 제거했습니다. 이제 제대로 작동합니다. 그러나 교차 플랫폼 지원이 어려울 수 있습니다 (예 : .net).

1

Java의 ConcurrentHashMap (또는 다른 컬렉션 유형의 경우)에 해당하는 것이 다른 플랫폼에 존재하지 않을 수 있으므로 Coherence 캐시는 키 - 값 쌍의 목록을 맵에 그대로 유지합니다. 이것이 HashMap을 다시 얻는 이유입니다.

더 좋은 방법은 ConcurrentHashMap (Java 버전)과 사용자 고유의 serializer를 기반으로 자신 만의 맵 클래스를 만드는 것입니다. PofWriter.writeMap 및 PofReader.readMap 메소드를 사용하여 ConcurrentHashMap을 다시 가져올 수 있습니다. .Net 버전이 필요한 경우지도 클래스에서 .Net에서 가장 잘 작동하는지도를 사용하고 적절한 맞춤 직렬기를 제공 할 수 있습니다.