当前位置: 首页 > 工具软件 > Back In Time > 使用案例 >

JTA transaction unexpectedly rolled back (maybe due to a timeout); 解决方法

蓟俊杰
2023-12-01

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

就这样

 类似资料: