spring+ibatis多データソース事務(分散事務)管理配置方法

13596 ワード

spring + ibatis       (     )      ( )
1、           :spring        ,       。      :spring       。       ,       。

2、          :              ,             ,        。

3、          jar  spring        ,     :jotm Atomikos。  google         ,  atomikos        email  ,   email       。      :

1、http://jotm.objectweb.org/

2、http://www.atomikos.com/Main/InstallingTransactionsEssentials

     jotm。

4、  spring+ibatis      jotm      。     spring              。       ,   。

Xml    
       
<bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean">  
     <property name="defaultTimeout" value="500000"/>  
</bean>    
  
<bean id="dataSource" 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="${driverClass}"/>  
                     <property name="url" value="${jdbcUrl}"/>  
             </bean>  
     </property>  
     <property name="user" value="${user}"/>  
     <property name="password" value="${password}"/>  
</bean>  
  
<bean id="dataSourceBbs" 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="${bbs.driverClass}"/>  
                     <property name="url" value="${bbs.jdbcUrl}"/>  
             </bean>  
     </property>  
     <property name="user" value="${bbs.user}"/>  
     <property name="password" value="${bbs.password}"/>  
</bean>      
  
<!-- JTA      -->  
<bean id="myJtaManager" class="org.springframework.transaction.jta.JtaTransactionManager">  
        <property name="userTransaction" ref="jotm" />  
</bean>    
  
 <!--        -->  
 <aop:config>  
         <aop:pointcut id="serviceOperation" expression="execution(* com.bohai.service.impl.*.*(..))"/>  
         <aop:advisor pointcut-ref="serviceOperation" advice-ref="txAdvice"  order="0" />  
 </aop:config>  
    
 <!--      -->  
 <tx:advice id="txAdvice" transaction-manager="myJtaManager">  
         <tx:attributes>  
                 <tx:method name="delete*" propagation="REQUIRED"  />  
                 <tx:method name="save*" propagation="REQUIRED"  />  
                 <tx:method name="update*" propagation="REQUIRED"  />  
                 <tx:method name="*" propagation="REQUIRED"  />  
                 <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>  
    <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>  
    <tx:method name="fetch*" propagation="SUPPORTS" read-only="true"/>  
    <tx:method name="*_noTrans" propagation="NOT_SUPPORTED"/>  
         </tx:attributes>  
 </tx:advice>    
 5、jtom           carol.properties ,   :

Java    
# do not use CAROL JNDI wrapper           
carol.start.jndi=false           
           
# do not start a name server           
carol.start.ns=false           
           
# Naming Factory        
carol.jndi.java.naming.factory.url.pkgs=org.apache.naming   
 

    classpath  ,   src  。

6、  jtom   jar:

   :http://www.blogjava.net/hao446tian/