在您使用 GTS 過程中,可能會遇到一些問題。本文解答一些常見的使用問題,幫助您更順暢的使用 GTS。

服務 A 調用服務 B,服務 A 上加了 GTS 開啟事務注解,服務 B 沒有注解,那么,A 和 B 是否在同一個分布式事務中?

A 和 B 在一個事務中。在使用 EDAS 服務事務的時候,只要客戶端 A 的函數上加入了 GTS 注解,那么這個客戶端 A 注解函數下面所有的被調用的服務及其子調用的服務都會加入到這個客戶端 A 的事務中。

GTS 服務停止事務還能正常回滾么?

GTS 的 server 會記錄下事務的狀態并持久化,即使服務停止,在服務重新啟動后,事務仍然能夠正常回滾。

建表時,列的名稱可以使用 SQL 的關鍵字嗎?

不可以,建表時列名不能用 SQL 的關鍵字,如 DESC、TABLE 等。

GTS 的日志記錄在哪兒,怎么查看 GTS 日志?

GTS 的事務日志名稱為 txcXXXX.log,其中 XXXX 為 GTS 客戶端進程的進程號,其路徑為 ${user.home}/logs/txcXXXX.log,其中 ${user.home} 為啟動 GTS 客戶端的用戶賬戶的根目錄。

查看日志時,可以按照 GTS 的全局事務 ID 去查看這個事務在該客戶端都操作了哪些資源,及全局提交和回滾情況如何。

運行 sample 樣例工程失敗,怎么解決?

運行 sample 樣例工程失敗,報錯:

Exception in thread "main" com.taobao.txc.common.b.c: [can't fetch real group name from diamond!vgroup_mapping_xxx] [10000] [unknown error]

解決步驟如下:

  1. 需要確認一下 GTS 事務分組,即報錯中的 “xxx” 是否已經審批通過。
  2. 然后確認一下樣例工程是否運行在售賣區 ECS 上。