Когерентный кэш | ConcurrentHashMap на входе, HashMap на выходе

Я только начал работать с кешем Oracle Coherence и заметил следующее: если я поместил объект ConcurrentHashMap в кеш, то при его извлечении я увидел, что он преобразуется в обычный HashMap.

Что я могу сделать, чтобы избежать этого внутреннего преобразования?


person sreenisatish    schedule 16.07.2010    source источник


Ответы (2)


Эквивалент для Java ConcurrentHashMap (или, если на то пошло, других типов коллекций) может не существовать на другой платформе, поэтому кэш Coherence просто сохраняет список пар ключ-значение на карте. Вот почему вы получаете HashMap обратно.

Лучшим способом является создание собственного класса карты на основе ConcurrentHashMap (в версии для Java) и собственного сериализатора. Используя методы PofWriter.writeMap и PofReader.readMap, вы можете организовать возврат ConcurrentHashMap. Если вам нужна версия .Net, вы можете заставить свой класс карты использовать ту карту, которая лучше всего работает в .Net, и предоставить соответствующий пользовательский сериализатор.

person David Cooke    schedule 10.09.2010

Я понял. Я удалил записи «сериализатора» из файла конфигурации xml. Теперь он работает нормально. Но я думаю, что кроссплатформенная поддержка может пострадать (например, .net).

person sreenisatish    schedule 16.07.2010