我有一个使用两个数据库的Spring Batch应用程序。一个用于作业存储库和一个包含业务数据的数据库。目前我正在为这些数据源使用两个不同的事务管理器,但我公司的一些人建议使用单个JTA TransactionManager(使用XA)。这真的是对的吗?如果业务数据库的事务失败,这意味着还会回滚对作业存储库的任何更新?这可能是不可取的。在这种情况下,最佳做法是什么?
答案 0 :(得分:1)
您可以尝试,强制回滚业务事务并查看影响。
希望它有所帮助。
答案 1 :(得分:0)
对于两个不同的数据源,使用XADataSource和像Atomikos这样的事务管理器可能更好。但是,根据您的输入,2个数据源不必位于单个事务管理器下,因为作业存储库是一种状态管理策略。我可能建议连接2个不同的交易经理。 在Spring论坛中查看此链接:2 Datasources