Was里面通过Spring配置分布式事务

1.登陆Was控制台,配置XA数据源,这有XA的数据源才可以支持分布式事务。

2.在xml里面配置dataSource和transactionManager,applicationContext-was.xml

<!-- JNDI DataSource -->
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/db" />

<!-- Transaction manager for XA DataSource -->
<bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager"/>

3.通过AOP实现将事务代理到指定的方法上,applicationContext-base.xml

 

<!-- Annotation Initilization -->
<context:annotation-config />

<!-- 扫描com.lq包里的接口 -->
<context:component-scan base-package="com.lq" scoped-proxy="interfaces" />

<aop:config>
    <!-- 代理com.lq.*.service.*Service命名的接口里的所有的方法 -->
    <aop:advisor id="managerTx" advice-ref="txAdvice"
          pointcut="execution(* *..service.*Service.*(..))" order="1" />
</aop:config>

<!-- enable the configuration of transactional behavior based on annotations -->
    <tx:annotation-driven  transactionmanager="transactionManager" />
    <!-- Transaction -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
                    <tx:attributes>
	    <tx:method name="*" propagation="REQUIRED" />
	    <tx:method name="find*" read-only="true" />
	    <tx:method name="query*" read-only="true" />
	    </tx:attributes>
	</tx:advice>

 4.把这些xml文件放到web.xml中

   

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath*:conf/spring/applicationContext-base.xml
        classpath*:conf/spring/applicationContext-was.xml
    </param-value>
</context-param>

 

要实现分布式事务的两台机器都要配置名称相同的XA数据源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值