【发布时间】:2011-03-27 13:04:58
【问题描述】:
我目前正在开发一个项目,该项目使用 JPA(目前是 Toplink)来实现其持久性。目前,我们正在运行一个应用程序服务器,但为了冗余,我们希望添加一个负载均衡器和另一个应用程序服务器(随着它的增长可能会更多)。
首先,我遇到了 JPA 缓存的问题。由于两个进程将更新同一个数据库,因此 JPA 缓存返回缓存的值,而不是转到数据库。我知道如何关闭它,并且数据库本身实现了一定程度的缓存。完全关闭缓存是要走这里的路吗?我看到了告诉 JPA 始终在查询级别从数据库获取的方法,但在多服务器环境中,您似乎总是希望这种情况发生。
除了这个特定的问题,我还对任何已经实施了具有多个应用程序服务器的 JPA 解决方案的人以及实施过程中出现的问题(以及您的任何建议)感兴趣。
非常感谢。
【问题讨论】:
-
你指的是什么缓存? TopLink 的东西(JPA 1.0 没有标准化 L2 缓存)?你能澄清一下吗?
-
我在这里谈论的是会话缓存 (weblogs.java.net/blog/guruwons/archive/2006/09/…)。
-
为什么在发布问题时没有提供该链接?添加上下文或链接通常不会受到伤害,尤其是当问题是关于提供者特定功能而不是 JPA 时。
-
你是对的,我应该把它包括在内。我最近才开始使用 JPA,并且只使用 Toplink,所以我仍然倾向于将它们视为同一事物(尽管我知道它们不是)。