Spring Batch与Atomikos结合使用不起作用

时间:2016-03-29 14:19:36

标签: spring spring-batch jta atomikos transactionmanager

我在配置Tomcat时遇到了问题 - Spring Batch - Atomikos组合。 我已经配置了以下内容(我没有提到JMS配置)

  • Atomikos DataSource(代理)基于 用于Oracle XA数据源的com.atomikos.tomcat.EnhancedTomcatAtomikosBeanFactory。

  • 基于JtaTransactionManager transactionManager基于com.atomikos.icatch.jta.J2eeTransactionManager userTransaction基于 com.atomikos.icatch.jta.J2eeUserTransaction

执行批处理作业时,我收到以下错误:

Caused by: java.lang.RuntimeException: Transaction Service Not Running?
    at com.atomikos.icatch.jta.J2eeUserTransaction.checkSetup(J2eeUserTransaction.java:70)
    at com.atomikos.icatch.jta.J2eeUserTransaction.getStatus(J2eeUserTransaction.java:125)
    at org.springframework.transaction.jta.JtaTransactionManager.
        isExistingTransaction(JtaTransactionManager.java:797)

调试显示以下内容:

Spring Batch使用TaskletStep。这个类使用一个用DataSourceTransactionManager实例化的PlatformTransactionManager?数据源指的是AtomikosDataSourceBean,看起来没问题。 我有几个问题:

  • 这个DataSourceTransactionManager来自哪里?我已经定义了一个JtaTransactionManager!
  • 我认为AtomikosDataSourceBean就像一个连接到JtaTransactionManager的代理。为什么Atomikos会出现错误“交易服务未运行?”

Spring Batch:2.1.8

Atomikos:3.9.3

0 个答案:

没有答案