JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException: One or more resources refused to commit (possibly because of a timeout in the resource - see the log for details). This transaction has been rolled back instead.
JTA 事务超时(批量新增超时)解决方法 设置
@Bean(name = "atomikosTransactionManager", initMethod = "init", destroyMethod = "close")
public TransactionManager atomikosTransactionManager() throws Throwable {
UserTransactionManager userTransactionManager = new UserTransactionManager();
userTransactionManager.setForceShutdown(false);
userTransactionManager.setTransactionTimeout(xxxx);
return userTransactionManager;
}
@Bean(name = "txManager")
@DependsOn({"userTransaction", "atomikosTransactionManager"})
public PlatformTransactionManager transactionManager() throws Throwable {
UserTransaction userTransaction = userTransaction();
TransactionManager atomikosTransactionManager = atomikosTransactionManager();
atomikosTransactionManager.setTransactionTimeout(xxxx);
return new JtaTransactionManager(userTransaction, atomikosTransactionManager);
}
设置这些没有用 设置配置文件 jta.properties
配置最大的事务活动个数,-1代表无限制
com.atomikos.icatch.max_actives = -1
# 默认超时时间,单位:毫秒
com.atomikos.icatch.default_jta_timeout = 3000000
# 默认最大超时时间,单位:毫秒
com.atomikos.icatch.max_timeout = 600000
就这样