Использование 2 разных источников данных: Spring Batch
У меня 2 разныхисточники данных, один для чтения, а другой для записи результатов, как показано ниже:
ItemReader должен получить данные из dataSource_1.ItemWriter должен записывать данные в dataSource_2.зная, что читатель и писатель находятся в одном и том же тасклете.
Согласно документации, мы можем настроить один диспетчер транзакций в тасклете.
В этом случае, как я могу использовать менеджер транзакций здесь?
Я не могу полагаться на контейнер, и я не использую слой ORM (JPA ..), я использую прямой драйвер JDBC для чтения в базе данных 1 и записи в базу данных 2.
текущий конф:
<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>
Как настроить транзакцию JTA / XA (Atomikos) с помощью Spring Batch?