我正在使用 Spring Batch 编写许多批处理作业,这些作业主要执行从/到数据库的导出/导入。Spring Batch 作业存储库数据库和目标数据库(我从中/向其读取/写入数据)位于不同的机器上。
我的问题是我应该在这个配置中使用 XA 事务吗?
我想知道在某个时间点链接到作业存储库 db 刹车时的场景,它是否会损坏数据?像这样:
- 作业开始(写入作业存储库)
- 在事务中的目标数据库中读取/处理/写入
- 链接到作业存储库数据库刹车和作业失败
最后我更新了目标数据库,但作业失败,因此在作业重新启动时将再次处理相同的数据。