本文介绍使用 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>