spring多資料來源的配置(分散式事務管理)
阿新 • • 發佈:2019-02-09
2.3、配置資料來源管理<bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="uniqueResourceName" value="dataSource"/> <property name="xaDataSourceClassName" value="com.informix.jdbcx.IfxXADataSource"/> <property name="xaProperties"> <props> <prop key="ifxIFXHOST">${database.ifxhost}</prop> <prop key="serverName">${database.serverName}</prop> <prop key="portNumber">${database.portNumber}</prop> <prop key="databaseName">${database.databaseName}</prop> <prop key="user">${database.user} </prop> <prop key="password">${database.password} </prop> </props> </property> <property name="maxPoolSize"><value>30</value> </property> </bean> <bean id="dataSource2" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="uniqueResourceName" value="malldataSource"/> <property name="xaDataSourceClassName" value="oracle.jdbc.xa.client.OracleXADataSource"/> <property name="xaProperties"> <props> <prop key="URL">${database2.jdbcUrl} </prop> <prop key="user">${database2.user} </prop> <prop key="password">${database2.password} </prop> </props> </property> <property name="maxPoolSize"><value>30</value> </property> </bean>
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close"> <property name="forceShutdown"> <value>true</value> </property> </bean> <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"> <property name="transactionTimeout" value="240"/> </bean> <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="transactionManager"> <ref bean="atomikosTransactionManager"/> </property> <property name="userTransaction"> <ref bean="atomikosUserTransaction"/> </property> </bean>
經過測試,以上兩種配置都可以實現分散式事務管理。