MySQL and Infinispan - JTA implementation



我们在Tomcat下有一个Web应用程序,与Hibernate 4X,Spring 4X和HibernateTransactionManager集成为我们的事务管理器(目前是一个MySQL资源)。

作为

配置分发的一部分,我们应该与Infinispan集成作为我们的缓存管理器,以存储MySQL以外的其他格式的配置。意思是,不像休眠第二级缓存集成!

我设法将Infinispan与Spring集成,但现在我面临着一个大问题,因为MySql事务和Infinispan必须在同一@Transactional上

我读过Spring JTA以及如何与Atomikos集成(例如)作为我们的全球事务管理器,但我不确定我们是否可以将整个实体结合起来协同工作以及如何:(

我需要知道是否有使用Atomikos Spring JTA的选项,以便Infinispan能够识别此JTA实现,并将MySql和Infinispan作为一个全局事务进行处理!(2个)

谢谢!

起初,我建议一起配置 Spring + Hibernate + JTA。这是一个非常好的教程。如果您正确配置了所有内容 - 您应该有一个 TransactionManager 类型的 bean .在上面的教程中,它在此块中配置:

@Bean(initMethod = "init", destroyMethod = "close")
public TransactionManager transactionManager() throws Throwable {
  UserTransactionManager userTransactionManager = new UserTransactionManager();
  userTransactionManager.setForceShutdown(false);
  return userTransactionManager;
}

现在,您可以将 Infinispan 配置为使用此事务管理器。实现此目的的最简单方法是实现自己的 TransactionManagerLookup。这应该返回上面创建的事务管理器。

最后,您必须创建事务缓存,如下所示:

<local-cache name="transactional">
    <transaction mode="FULL_XA"/>
</local-cache>

之后,一切都应该使用相同的事务管理器,Spring 应该在单个@Transactional注释中处理所有内容。

最新更新