Eclipselink缓存问题(一个数据库用于两个系统)

4
我有两个在线系统正在运行。它们都使用eclipselink。
第一个系统是管理系统,用于管理第二个应用程序的价格。 第二个系统是在线商店,客户可以购买商品。 它们都在同一台服务器上运行,并使用相同的Oracle数据库。
为了提供快速访问,价格对象由eclipselink缓存。
如果我在管理系统中更改价格的值,则商店系统应刷新其缓存以获取新的价格值。 解决这个问题的最佳方法是什么?
1个回答

2
我有一个类似的问题,但是它与用户凭据有关。
1)在商店端配置缓存
您可以配置EclipseLink缓存以使其过期。您可以将其配置为具有TimeToLive或到期值。例如,您可以将价格配置为在1、5或10分钟后过期。不是即时的,但非常快速且易于实现。请查看EclipseLink中的@Cache注释。这就是我最终使用的方法。
2)使管理员应用程序与商店应用程序通信
创建一个位于商店侧的Web服务可能值得一试,当调用时将使缓存无效。有点脆弱,但根据您的设置可能是必要的。
3)使用缓存协调
EclipseLink具有缓存协调功能。我从未使用过,但看起来可能是您的最佳策略。您可以查看EclipseLink文档以获取更多信息。

选项3似乎是我情况下最好的选择。你知道一个好的教程,如何通过RMI在tomcat容器上进行管理吗?EclipseLink文档在这一点上并不非常详细,谷歌只知道其中的缺陷 ;) - CSan
我对那方面没有任何经验。你可以尝试一下eclipselink邮件列表。如果有人知道的话,他们会知道的。 - Mark Robinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接