gpt4 book ai didi

java - 使用 2 个不同的数据源 : Spring batch

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:59 25 4
gpt4 key购买 nike

我有 2 个不同的数据源,一个用于读取,另一个用于写入结果,如下所示:

  • ItemReader 应该从 dataSource_1 获取数据。
  • ItemWriter 应该将数据写入 dataSource_2。

知道 reader 和 writer 在同一个 tasklet 中。

根据文档,我们可以在 tasklet 中配置单个事务管理器

在这种情况下,如何使用这里的事务管理器?

我不能依赖容器并且我没有使用 ORM 层 (JPA..),我使用直接 JDBC 驱动程序读取数据库 1 并写入数据库 2。

当前 session :

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${batch.or.jdbc.driver}" />
<property name="url" value="${batch.or.jdbc.url}" />
<property name="username" value="${batch.or.jdbc.user}" />
<property name="password" value="${batch.or.jdbc.password}" />
</bean>

<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${batch.caux.jdbc.driver}" />
<property name="url" value="${batch.caux.jdbc.url}" />
<property name="username" value="${batch.caux.jdbc.user}" />
<property name="password" value="${batch.caux.jdbc.password}" />
</bean>

<bean id="baseReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<property name="dataSource" ref="dataSource1" />
</bean>

<bean id="baseWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter">
<property name="dataSource2" ref="dataSource2" />
<property name="sql" value="${batch.param.insert}" />
</bean>

我如何使用 Spring Batch 配置 JTA/XA 事务 (Atomikos)?

最佳答案

您需要为您的 2 个数据源和 JTA 事务管理器使用 XA 兼容驱动程序。

看这个article 还有这个one如果你不熟悉分布式事务

问候

关于java - 使用 2 个不同的数据源 : Spring batch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com