-->

MySQL和Infinispan的 - JTA实现(MySQL and Infinispan -

2019-10-21 12:28发布

我们在Tomcat下的Web应用程序,与Hibernate 4X,春4X和HibernateTransactionManager来作为我们的事务管理器(目前一个MySQL的资源)的整合。

由于我们的配置分布的一部分,我们应该整合的Infinispan作为我们的高速缓存管理器存储与比MySQL的其他格式配置。 意义, 还不如Hibernate的二级缓存整合!

我设法Infinispan的与Spring集成但我现在面临着一个大问题,因为事实MySQL的交易和Infinispan的必须是在同一个@Transactional。

我读到春天JTA,以及如何与Atomikos公司(EG)作为我们的全球业务经理进行整合,但我不知道,如果我们可以结合整个实体一起工作如何:(

我需要知道,如果有一个与Atomikos公司春天JTA工作,所以使用Infinispan会认识到这一点的JTA实现,将处理MySQL和Infinispan的作为一个全局事务的选择 (2PC)

谢谢!

Answer 1:

起初,我建议配置Spring + Hibernate的JTA +一起。 这里是一个非常不错的教程 。 如果你配置好了一切正确的-你应该有一个类型的bean TransactionManager 。 在上面的教程它被配置这个块内:

@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>

之后,一切都应该使用相同的事务管理工作,春季应该处理单内的一切@Transactional注解。



文章来源: MySQL and Infinispan - JTA implementation