Мой проект находится в Spring Batch. Я использую три диспетчера транзакций для трех разных источников данных. Здесь я столкнулся с проблемой, что если произойдет сбой в одном из постоянств базы данных, откат будет выполнен только для этого источника данных, а не для двух других источников данных. Я хочу синхронизировать все источники данных, чтобы откат выполнялся для всех трех. Возможно ли иметь один менеджер транзакций для всех трех источников данных? Так ли это, как настроить? Пожалуйста, помогите мне с этим. Найдите ниже детали моей конфигурации,
<bean id="firstDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" primary="true">
<property name="driverClassName" value="${jdbc.first.driver}" />
<property name="url" value="${jdbc.first.url}" />
<property name="username" value="${jdbc.first.username}" />
<property name="password" value="${jdbc.first.password}" />
<property name="removeAbandoned" value="true" />
<property name="initialSize" value="${jdbc.initial.pool.size}" />
<property name="maxActive" value="${jdbc.max.active}" />
</bean>
<bean id="secondDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.second.driver}" />
<property name="url" value="${jdbc.second.url}" />
<property name="username" value="${jdbc.second.username}" />
<property name="password" value="${jdbc.second.password}" />
<property name="removeAbandoned" value="true" />
<property name="initialSize" value="${jdbc.initial.pool.size}" />
<property name="maxActive" value="${jdbc.max.active}" />
</bean>
<bean id="thirdDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.third.driver}" />
<property name="url" value="${jdbc.third.url}" />
<property name="username" value="${jdbc.third.username}" />
<property name="password" value="${jdbc.third.password}" />
<property name="removeAbandoned" value="true" />
<property name="initialSize" value="${jdbc.initial.pool.size}" />
<property name="maxActive" value="${jdbc.max.active}" />
</bean>
<bean id="firstTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="firstDataSource" />
</bean>
<bean id="secondTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="secondDataSource" />
</bean>
<bean id="thirdTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="thirdDataSource" />
</bean>