Как 2 отдельных веб-приложения могут совместно использовать кэш второго уровня с Hibernate? - PullRequest
0 голосов
/ 25 августа 2011

У меня есть 2 веб-приложения.

Я хочу, чтобы он имел доступ к той же общей базе данных с Hibernate, и я хочу использовать кэш второго уровня в каждом.Но я хочу, чтобы второе веб-приложение могло видеть изменения первого веб-приложения.

Я не уверен, что понял, но является ли Hazelcast решением для моих нужд?

Смогу ли яуправлять транзакциями, как раньше, с помощью этого решения в Spring?

Спасибо.

Ответы [ 4 ]

1 голос
/ 25 августа 2011

Я думаю, вы делаете это более сложным, чем нужно.Просто настройте оба веб-приложения на получение данных с помощью оператора выбора, и всякий раз, когда вы изменяете данные (используя обновление) на одной из страниц, делайте пост обратно.

Таким образом, независимо от того, какая страница вносит изменения, страница отправляется обратно, и когда другая страница загружается, изменение уже существует.Это также должно работать, если вы используете ajax, чтобы избежать постбэков.

0 голосов
/ 25 августа 2011

Так что я не могу использовать две отдельные фабрики сессий Hibernate.

Почему бы и нет? За исключением того, что вы установили режим очистки на MANUAL, проблем не должно быть. Типичная настройка: COMMIT или AUTO.

Любые дальнейшие проблемы могут возникнуть при использовании кэша второго уровня . Избегайте этого, если на вашем сервере приложений нет среды JTA.

PS: настройки гибернации могут быть настроены весной, но это может быть сделано любым другим способом.

0 голосов
/ 25 августа 2011

Почему вы думаете, что у вас не может быть двух отдельных сессионных фабрик? Это не вызовет никаких проблем, за исключением случаев, когда вы используете некластеризованный кэш второго уровня для хранения объектов чтения-записи.

0 голосов
/ 25 августа 2011

Просто сделай это.Любое изменение, которое приложение вносит в базу данных, должно быть видимым для любого другого приложения, которое читает эту базу данных.После того, как изменение зафиксировано, оно должно быть на жестком диске, и любой другой, кто читает базу данных с жесткого диска, должен это увидеть.

...