<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Ordinary hut

    人間一福地,勝似天仙宮
    posts - 61, comments - 50, trackbacks - 0, articles - 1

    關于用spring的JtaTransactionManager,配置分布式事務

    Posted on 2010-01-09 13:22 landor 閱讀(17364) 評論(1)  編輯  收藏 所屬分類: spring
    如果容器支持jta,那么spring配置起來非常簡單,因為spring提供了JtaTransactionManager,在這里面提供了幾乎所有的服務器的jta的jndi名字,比如
    * "java:comp/UserTransaction" for Resin 2.x, Oracle OC4J (Orion), JOnAS (JOTM), BEA WebLogic
    * "java:comp/TransactionManager" for Resin 3.x
    * "java:appserver/TransactionManager" for GlassFish
    * "java:pm/TransactionManager" for Borland Enterprise Server and Sun Application Server (Sun ONE 7 and later)
    * "java:/TransactionManager" for JBoss Application Server

    由于大部分服務器獲取jta的方式都不盡相同,spring還針對不同的服務器提供了不同的jta實現,例如:
    WebLogicJtaTransactionManager
    WebSphereUowTransactionManager
    OC4JJtaTransactionManager

    具體內容參加:
    http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/transaction/jta/JtaTransactionManager.html

    不管是jdbc、hibernate還是ibatis,都可以通過JtaTransactionManager來配置分布式事務
    下面簡單貼出部分配置代碼:
    hibernate:
    <beans>
      
    <jee:jndi-lookup id="myDataSource1" jndi-name="dsjndi1" />
      
    <jee:jndi-lookup id="myDataSource2" jndi-name="dsjndi2" />

      
    <bean id="mySessionFactory1"
            class
    ="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
            
    <property name="dataSource">
                
    <ref bean="myDataSource1" />
            
    </property>
            
    <property name="hibernateProperties">
                
    <props>
                    
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                    
    <prop key="hibernate.show_sql">true</prop>
                    
    <prop key="hiberante.format_sql">true</prop>
                
    </props>
            
    </property> 
            
    <property name="annotatedClasses">
                
    <list>
                    
    <value>com.landor.test.entity.User</value>
                
    </list>
            
    </property>
            
    <property name="annotatedPackages">
                
    <list>
                    
    <value>com.landor.test.entity</value>
                
    </list>
            
    </property>
      
    </bean>
      
    <bean id="mySessionFactory2"
            class
    ="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
            
    <property name="dataSource">
                
    <ref bean="myDataSource2" />
            
    </property>
            
      
    </bean>

      
    <bean id="myTxManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
      <!--如果默認id=
    transactionManager,那么可以有下面的標簽,這樣spring會自動尋找相應的jta的jndi并且注入
      <tx:jta-transaction-manager/>-->
      <tx:advice id="txAdvice" transaction-manager="myTxManager">
        
    <tx:attributes>
            
    <tx:method name="select*" read-only="true" propagation="REQUIRED"/>
            
    <tx:method name="find*" read-only="true"  propagation="REQUIRED"/>
            
    <tx:method name="save*"  propagation="REQUIRED" isolation="REPEATABLE_READ"/>
            
    <tx:method name="update*"  propagation="REQUIRED" isolation="REPEATABLE_READ"/>
            
    <tx:method name="add*"  propagation="REQUIRED" isolation="REPEATABLE_READ" />
            
    <tx:method name="delete*"  propagation="REQUIRED" isolation="REPEATABLE_READ"/>
        
    </tx:attributes>
      
    </tx:advice>

    </beans>
    ibatis:
    ibatis與hibernate是一樣的,只需要將hibernate的sessionFactory部分更換一下
        ......
       
    <bean id="sqlMap1Client"
            class
    ="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
            
    <property name="dataSource" ref="myDataSource1" />
            
    <property name="configLocation" value="xxx/SqlMapConfig.xml" />
        
    </bean>
        
    <bean id="sqlMap2Client"
            class
    ="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
            
    <property name="dataSource" ref="OssDS" />
            
    <property name="configLocation" value="xxx/SqlMapConfig.xml" />
        
    </bean>
        ......



    Feedback

    # re: 關于用spring的JtaTransactionManager,配置分布式事務  回復  更多評論   

    2013-04-19 13:11 by WillsonYang
    我是菜鳥,能不能說得更加詳細點 ,問下是不是這兩個程序要一樣,只是分別部署在不同的服務器上..........完全不使用EJB怎么配置
    主站蜘蛛池模板: 久久精品国产亚洲av麻豆色欲| 亚洲综合伊人久久大杳蕉| 在线播放免费播放av片| 亚洲av午夜福利精品一区人妖| 国产乱妇高清无乱码免费| 久久免费的精品国产V∧| 亚洲AV无码久久| 一级毛片免费观看不卡的| 无码人妻一区二区三区免费| 亚洲精品人成电影网| 亚洲一区二区免费视频| 亚洲综合激情六月婷婷在线观看| 91视频免费网址| 丁香亚洲综合五月天婷婷| 久久精品九九亚洲精品天堂| 亚洲精品9999久久久久无码| 精品在线免费观看| 亚洲国产精品自在线一区二区| 99爱在线精品视频免费观看9| 亚洲国产美女精品久久| 两个人日本WWW免费版| 亚洲成av人片天堂网| 久久精品国产免费观看三人同眠| 亚洲av产在线精品亚洲第一站| 曰批全过程免费视频免费看| 亚洲成AV人网址| 亚洲国产精品日韩av不卡在线| 又粗又硬又黄又爽的免费视频 | 一级人做人a爰免费视频| 精品久久久久久亚洲| 在线看免费观看AV深夜影院| 亚洲精品成a人在线观看夫| 亚洲国产精品一区二区三区久久| 国产成人无码区免费内射一片色欲| 国产乱子影视频上线免费观看| 曰韩无码AV片免费播放不卡| 久久久久亚洲AV成人片| 永久黄网站色视频免费观看| 久久久WWW免费人成精品| 亚洲1区1区3区4区产品乱码芒果 | 亚洲精品免费在线视频|