Гибернация и ehcache репликация - PullRequest
0 голосов
/ 19 февраля 2010

Я работаю над решением для репликации кэша между узлами

Узел A - главный узел => Hibernate + База данных + Ehcache в качестве вторичного кеша
Узел B - региональный узел => Ehcache в качестве начального узлакэш.нет Hibernate

Узел B используется только как ближний кэш для запроса.

Теперь я обновляю данные (скажем, SudentInfo) в узле A, они сохраняются и правильно кэшируются.На стороне репликации (я использую JMS) он отправляет сообщение узлу B. Но проблема в том, что отправляемое сообщение имеет экземпляр CacheEntry (глубокий внутренний элемент), нет способа воскресить исходный объект (StudentInfo).В узле B я получил CacheEntry с некоторыми атрибутами учеников, но на самом деле это не объект ученика.

Обратите внимание, что мне не нужен сеанс / постоянство Hibernate в узле B, узел B предназначен только для быстрого запроса,постоянство осуществляется через узел А. Так кто-нибудь пробовал какое-либо решение, подобное этому?Есть ли способ конвертировать CacheEntry в реальный объект?или Скажите ehcache, чтобы он копировал оригинальный объект, а не CacheEntry.

Спасибо за помощь

1 Ответ

0 голосов
/ 19 марта 2010

Что означает «Ehcache как вторичный кеш»? Как кэш второго уровня ?

Поскольку в этом случае реплицируемый объект не является объектом, это данные, которые Hibernate использует для хранения объекта, он по существу эквивалентен данным уровня строки, хранящимся в вашей базе данных.

Взгляните на эту статью, она объясняет, что находится в кэше второго уровня: Истинное понимание кэша второго уровня Hibernate и кэша запросов

Мой вопрос к вам - почему бы не настроить узел B для связи с базой данных - тогда у вас есть гомогенная настройка. Если кеширование работает, то прекрасно, что вы получаете кэшированные значения и не попадаете в БД, а если нет, вы попадаете в БД.

Если нет какой-либо топологической причины, по которой вы не можете этого сделать - на мой взгляд, было бы намного проще просто запустить оба узла с одинаковой конфигурацией / настройкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...