我们在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)
谢谢!
起初,我建议配置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
注解。