本文介绍使用 TCC 模式接入 GTS 时的注意事项。

开启 TCC 模式

单独使用 TCC 模式时,需要开启 TCC 模式。

<bean class="com.taobao.txc.client.aop.TxcTransactionScaner">
     <constructor-arg value="gtstest.123213123.HZ"/>
     <!-- 1:AT 2:MT 3:AT&MT -->
     <constructor-arg value="2"/>
</bean>         

GTS 对 MQ 事务消息纳入全局事务管理的支持是通过 TCC 模式实现的。 所以,使用 AT 模式的同时,又需要把 MQ 事务消息纳入全局事务管理时,就需要同时开启 AT 和 TCC 模式的配置 。

<bean class="com.taobao.txc.client.aop.TxcTransactionScaner">
     <constructor-arg value="gtstest.123213123.HZ"/>
     <!-- 1:AT 2:MT 3:AT&MT -->
     <constructor-arg value="3"/>
</bean>           

在 GTS 中使用 MQ 时,MTRelationShipManager 一定要先于 TxcTransactionScaner 进行声明

说明 非 XML 配置方式的应用,可以忽略该注意事项。
<!-- 先实例化MTRelationShipManager -->
<bean class="com.taobao.txc.client.aop.MTRelationShipManager">
     <property name="beanNames" ref="mtServicesClassList" />
     <property name="interceptorNames">
         <list>
             <value>mtBranchInterceptor</value>
         </list>
     </property>
     <property name="order" value="1"></property>
     <property name="proxyTargetClass" value="false">
     </property>
</bean>

<!-- 再实例化TxcTransactionScaner -->
<bean class="com.taobao.txc.client.aop.TxcTransactionScaner">
     <constructor-arg value="gtstest.123213123.HZ"/>
     <!-- 1:AT 2:MT 3:AT&MT -->
     <constructor-arg value="3"/>
</bean>