Spring配置一个事务中多个数据源

时间:2022-07-21 05:10:24
 

(个人观点)

  在一个事务中包含多个数据源的更新操作时,需要JTA的支持,通常JTA的支持是由J2EE容器提供的(WAS,Weblogic...),也有单独实现JTA的第3方jar。

 

  Spring提供的是jotm和xapool,但在配置过程中遇到了问题,使用org.enhydra.jdbc.standard.StandardXADataSource做数据源时,它的shutdown方法是带参数的

Xml代码 Spring配置一个事务中多个数据源 Spring配置一个事务中多个数据源Spring配置一个事务中多个数据源

 

  xapool的文档做的不好就没有继续,又找了另一个,AtomikosTransactionsEssentials(支持JMS和JDBC作为数据源)。

 

Xml代码 Spring配置一个事务中多个数据源 Spring配置一个事务中多个数据源Spring配置一个事务中多个数据源

 

  xaDataSourceClassName是设置javax.sql.XADataSource(使用DB的驱动提供),其中xaProperties是Map类型的,通过反射设置javax.sql.XADataSource的属性。例子中使用的是DB2。