我目前有一个包含两个数据源的程序。每个数据源都绑定到一个事务管理器。

<bean id="tM" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds1" />
</bean>

<bean id="tM2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds2" />
</bean>


如果我有一个访问两个数据源的函数,并且发生错误,那么如果一个数据源回滚,第二个数据源也会回滚吗?

谢谢!

最佳答案

如果您的函数按顺序访问数据存储区(我的意思是将其提交到第一个数据存储区,然后尝试提交到第二个数据存储区),则如果在第一个COMMIT之后发生错误,则第二个数据源将执行ROLLBACK,但首先-保持COMMITED

因此,您必须使用一个数据存储或JTATransactionManager。

10-08 09:32