1. 程式人生 > >spring多資料來源的配置(分散式事務管理)

spring多資料來源的配置(分散式事務管理)

<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>
2.3、配置資料來源管理
<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>

經過測試,以上兩種配置都可以實現分散式事務管理。