3

我们在基于 JPA(Hibernate)的应用程序中使用 Infinispan(使用 JGroups 集群)作为我们的二级缓存。当数据库操作失败时,我们会看到二级缓存是陈旧的。例如:

1) 尝试使用登录名“joe”创建用户。2) 调用persist(user);3) 由于数据库唯一性约束,持久化失败。4) 在 login=joe 上按 id 查找(假设 login 是 PK)。5) Hibernate 从 Infinispan 缓存返回 joe 用户,即使数据库没有它。

在这种情况下,配置 XA 事务并让 Infinispan 参与 XA 似乎有点矫枉过正。XA 是解决这个问题的唯一方法吗?

4

2 回答 2

2

启用事务同步,比 XA 便宜得多。

有关详细信息,请参阅http://infinispan.blogspot.com/2011/06/faster-infinispan-based-second-level.html 。

于 2011-08-24T09:09:05.277 回答
0

我必须通过部署 Atomikos 来启用 XA 事务以保持缓存同步。其他解决方案不起作用。

于 2012-07-31T19:58:21.553 回答