我正在开发一个Spring Batch企业应用程序。该应用程序的目的是将记录写入我所工作的公司的旧数据库中的表中。该数据库确实是一个大男孩,可以将业务和客户信息存储在具有数亿条记录的大量模式和表中,并且还有数百个与其连接的应用程序:ERP,CRM,内部应用程序,.com。

因此,我无法创建jobRepository所需的作业元数据表,因为无法在该旧数据库中创建新表。但是同时,我需要能够监视作业,因此我希望jobRepository指向另一个数据源。

我应该只创建另一个事务管理器并在jobRepository中使用它吗?我正在将Tasklet步骤与块任务和JdbcBatchItemWriter一起使用

最佳答案

是的,他们使用同一个事务管理器。在您的情况下,您需要一个JTA事务管理器,因为您需要将数据(批处理数据和业务数据)写入两个不同的数据库中。
阅读this comment,接下来阅读几篇;这是很好的解释。

关于java - jobRepository是否必须使用与JdbcBatchItemWriter相同的事务管理器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18795882/

10-10 10:19