Исключение SQL приводит к тому, что кэш второго уровня Hibernate имеет устаревшие данные с Infinispan в качестве поставщика - PullRequest
3 голосов
/ 18 августа 2011

Мы используем Infinispan (кластеризованный с использованием JGroups) в качестве нашего кэша второго уровня в нашем приложении на основе JPA (Hibernate). Когда происходит сбой в работе базы данных, мы видим, что кэш 2-го уровня устарел. Например:

1) Попытка создать пользователя с логином "joe". 2) Звонок сохраняется (пользователь); 3) постоянные сбои из-за ограничения уникальности базы данных. 4) Выполните поиск по идентификатору на login = joe (при условии, что логин - это PK). 5) Hibernate возвращает пользователя joe из кэша Infinispan, даже если в базе данных его нет.

Конфигурирование транзакций XA и участие Infinispan в XA выглядит излишним в этой ситуации. Является ли XA единственным способом решения этой проблемы?

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Включить синхронизацию транзакций, намного дешевле, чем XA.

Подробнее см. http://infinispan.blogspot.com/2011/06/faster-infinispan-based-second-level.html.

0 голосов
/ 31 июля 2012

Мне пришлось включить транзакции XA, развернув Atomikos для синхронизации кеша. Другие решения не сработали.

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