当前位置: 首页 > 知识库问答 >
问题:

JBoss 7 Infinispan和事务

苏乐童
2023-03-14

我使用JBoss作为7.1.1最终版本。我已经配置了事务模式为“FULL_XA”的复制缓存。

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

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

共有1个答案

蔡明贤
2023-03-14

在英菲尼斯潘论坛上得到了同样的问题(和答案):https://community.jboss.org/message/778149#778149

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

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

 类似资料:
  • Serenity 使用简单的 ADO.NET 数据访问对象,像 SqlConnection、DbCommand 等。 它提供了一些基本的助手(helpers)来创建连接、添加参数、执行查询等。 SqlConnections 类 [命名空间: Serenity.Data, 程序集: Serenity.Data] 该类包含创建连接的静态函数,并在数据库中以不可见的方式控制它。 SqlConnectio

  • 我的路线如下 我知道(A)处的JMS消费者将在每次轮询时分叉JMS事务,并附加到线程。(B)中的事务处理节点也将在交换到达那里并连接到线程后分叉JPA事务。 请在下面找到我的问题: > < li >能否将两个不同的事务附加到一个线程上(如上所示)? < li >如果是,哪一个应该被停职? < li> 上述路由的提交和回滚顺序应该是什么? 注:我没有从骆驼在行动第二版中找到任何明显的答案,所以请指导

  • 在MongoDB中,写操作的原子性是在document级别上的,即使修改的是文档中的内嵌部分,写锁的级别也是document上。 当一个写操作要修改多个文档,每个文档的修改是原子性的。整个的写操作并不是原子性的,它可能和其他写操作产生交织。然而你可以使用$isolated隔离操作符来限制写操作,让它不与其他写操作交织。 不隔离性能更高,但是会产生数据的不确定性,隔离写操作,事务性更好。MongoD

  • 一、Attach数据库: ATTACH DATABASE语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化到磁盘文件上。如果操作Attached数据库中的表,则需要在表名前加数据库名,如dbname.table_name。最后需要说明的是,如果一个事务包含多个Attached数据库操作,那么该事务仍然是原子的。见如下示例:

  • SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 . 上一页: 建立连接-引擎 |下一步: |next| 处理事务和DBAPI 与 Engine 对象准备好了,我们现在可以开始深入研究一个 Engine 以及它的主要交互端点 Connection 和 Result . 我们还将介绍ORM facade 对于这些对象,称为 Session

  • 8.3.1 事件和事件对象 事件是针对应用程序所发生的事情,并且需要应用程序对它做出响应或进行处理。Tkinter中定义了很多种事件,足以支持常见的 GUI 应用程序开发。 Tkinter 事件可以用特定形式的字符串来描述,称为事件模式。事件模式的一般形式是: <modifier-type-detail> 其中类型符 type 指定事件类型,最常用的类型有分别表示鼠标事件和键盘事件的 Butto