我正在开发 Spring Batch 企业应用程序。该应用程序的目标是将记录写入我工作的公司的旧数据库中的表中。该数据库确实是一个大男孩,它将业务和客户信息存储在具有数亿条记录的大量模式和表中,还有数百个应用程序连接到它:ERP、CRMS、内部应用程序、.com。
因此,我无法创建 jobRepository 所需的作业元数据表,因为我无法在该旧数据库中创建新表。但同时我需要能够监视作业,因此我希望 jobRepository 指向另一个数据源。
我应该创建另一个事务管理器并在 jobRepository 中使用它吗?我正在使用带有 block 任务和 JdbcBatchItemWriter 的 tasklet 步骤
最佳答案
是的,他们使用相同的事务管理器。在您的情况下,您需要 JTA 事务管理器,因为您将数据(批量元数据和业务数据)写入两个不同的数据库。
阅读 this comment接下来很少有;解释得很好。
关于java - jobRepository 是否必须使用与 JdbcBatchItemWriter 相同的事务管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18795882/