1

我正在使用 JBoss As 7.1.1 Final。我已经使用事务模式“FULL_XA”配置了一个复制缓存。

我将缓存用作内存数据库。缓存中的条目由应用程序操作(添加/更新/删除)。我面临这样一种情况,即 JTA 事务回滚不会恢复先前在缓存中添加的条目。Infinispan 文档指定了为缓存配置的事务管理器。我相信在 JBoss 应用服务器上,infinispan 应该能够自动选择正确的事务管理器。此外,infinispan 1.2 XSD 没有提供关于我们应该如何为缓存配置事务管理器的任何细节。我们真的需要在这里配置一个事务管理器吗?如果不是,那么缓存添加在事务回滚后未回滚的可能原因是什么。

一旦相应的事务回滚,infinispan 是否提供删除缓存中先前添加的条目的能力?这本质上与持久数据存储(如 RDBMS)提供的原子性保证相同。

4

1 回答 1

2

在 Infinispan 论坛上得到相同的问题(和答案):https ://community.jboss.org/message/778149#778149

实际上,Infinispan 在事务提交之前不会向缓存写入任何内容,因此没有任何内容可以回滚 - 如果缓存确实是事务性的,则默认情况下不是。

您可以通过元素transactionMode的属性启用事务。还有一个用于自定义事务管理器查找的属性 ( ),但正如您猜测的那样,默认值应该适用于 AS7。transactiontransactionManagerLookupClass

于 2012-11-23T18:45:08.137 回答