2个分离的Web应用程序如何与Hibernate共享二级缓存?

时间:2011-08-25 16:55:44

标签: java web-applications distributed-caching

我有2个网络应用程序。

我希望它能够使用Hibernate访问同一个共享数据库,我想在每个数据库中使用二级缓存。但我希望第二个Web应用程序能够看到第一个Web应用程序的修改。

我不确定是否理解但是Hazelcast是否符合我的需求?

我能否像以前一样使用Spring解决这个问题?

谢谢。

4 个答案:

答案 0 :(得分:1)

我认为你让它变得比它需要的更复杂。只需设置两个Web应用程序以使用select语句提取数据,并且每当您在其中一个页面上修改数据(使用更新)时,请回复一下。

这种方式无论哪个页面进行更改,页面都会回发,当其他页面加载时,更改已经存在。如果您使用ajax来避免回发,这也应该有效。

答案 1 :(得分:0)

做到这一点。应用程序对数据库所做的任何更改都应该对读取该数据库的任何其他应用程序可见。一旦提交了更改,它应该在硬盘驱动器上,并且从硬盘驱动器读取数据库的任何其他人都应该看到它。

答案 2 :(得分:0)

为什么你认为你不能拥有两个独立的会话工厂?这不会导致任何问题,除非您使用非群集二级缓存来存储读写实体。

答案 3 :(得分:0)

  

所以我不能使用两个独立的Hibernate Session Factories。

为什么不呢?除非您已将flush mode设置为MANUAL,否则应该没有问题。典型设置为COMMITAUTO

使用second level cache可能会发生任何其他问题。如果您的应用服务器没有JTA环境,请避免这种情况。

PS:可以通过spring配置休眠设置,但也可以通过其他方式完成。