2015-04-21 84 views
0

我正在从数据库中读取数据,并通过Spring Batch写入另一个数据库。我需要两个交易管理者吗?我从第一个数据库读取'n'行,处理它们,然后将'm'行写入第二个数据库。我使用的是jdbc,但不是JPA或Hibernate。两个数据库的弹簧批处理事务管理器

+0

关键词进行搜索:XA,两阶段提交,分布式事务。简而言之,确保你有两个数据库支持XA的驱动程序,并拥有一个合适的事务管理器(通常从容器中获得,我记得有一些非容器的txn管理器实现,但我没有尝试过) –

回答

1

只有当目标数据源(数据写入的地方,我的意思是)不同于数据源持有SB元数据表时,XA才是必需的。如果目标数据库与包含元数据表的目标数据库相同,则不需要XA。
成瘾,AbstractCursorItemReader为基础的使用分离连接进行阅读。

默认情况下,光标将使用单独的连接打开。无论是提交还是滚动 备份在周围的事务中,游标的ResultSet都保持打开状态。这个读者的客户端是 负责缓冲项目的情况下,他们需要在 重新呈现在回滚。该缓冲由所提供的步骤 处理,并且仅仅是编写 其自己的步骤实施的任何人的关注。

(看this question,太)