我在配置 Tomcat – Spring Batch – Atomikos 组合时遇到问题。我已经配置了以下(我没有提到JMS配置)
Atomikos 数据源(代理)基于 com.atomikos.tomcat.EnhancedTomcatAtomikosBeanFactory 用于 Oracle XA 数据源。
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 出现“事务服务未运行”错误?</li>
春季批次:2.1.8
阿托米科斯:3.9.3