Можем ли мы использовать DBCP 2 или пул соединений Tomcat для распределенных транзакций в Spring? Могут ли эти пулы соединений использоваться вместе с JOTM или Atomikos?

Первоначально я использовал другой менеджер транзакций для нескольких источников данных. Но у меня была проблема с управлением откатом на всех источниках данных, если один из источников данных имел сбой транзакции. Я хочу управлять несколькими источниками данных с помощью одного менеджера транзакций в Spring. Поэтому я выбрал JOTM или Atomikos. Оба эти диспетчера транзакций используют пул XA Connection (org.enhydra.jdbc.pool.StandardXAPoolDataSource). Но в моем проекте мне было разрешено использовать только DBCP 2(org.apache.commons.dbcp.BasicDataSource) или пул соединений Tomcat (org.apache.tomcat.jdbc.pool.DataSource). Можно ли использовать любой из этих пулов соединений с JOTM или Atomikos. Пожалуйста, кто-нибудь, помогите мне в этом вместе с примером конфигурации. Ниже мои детали конфигурации,

<

bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"/>

    <bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager"> 
    <property name="userTransaction" ref="jotm" /> 
    </bean>

    <bean id="dataSource1" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> 
    <property name="dataSource"> 
    <bean class ="org.enhydra.jdbc.standard.StandardXADataSource " destroy-method ="shutdown"> 
    <property name="transactionManager" ref="jotm" /> 
    <property name="driverName" value="${jdbc.d1.driver}" /> 
    <property name ="url" value = "${jdbc.d1.url}" /> 
    </bean> 
    </property> 
    <property name="user" value="${jdbc.d1.username}" /> 
    <property name = "password" value="${jdbc.d1.password}" /> 
    </bean> 

    <bean id="dataSource2" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">
    <property name="dataSource"> 
    <bean class ="org. enhydra.jdbc.standard.StandardXADataSource " destroy-method ="shutdown"> 
    <property name="transactionManager" ref="jotm" /> 
    <property name="driverName" value="${jdbc.d2.driver}" /> 
    <property name="url" value="${jdbc.d2.url}" /> 
    </bean> 
    </property> 
    <property name="user" value="${jdbc.d2.username}" /> 
    <property name = "password" value ="${jdbc.d2.password}" /> 
    </bean>  

Также помогите, если какие-либо другие возможные способы достижения этого.

0 ответов

Другие вопросы по тегам