XA のトラブルシューティング

console.log 内のエラー メッセージの読み取り

XA 呼び出しの失敗時には、次の情報を含むメッセージがログに表示されます。

  • ターゲットのリソース マネージャー
  • 失敗している XA 呼び出し
  • 呼び出しからの戻りコード
  • XID (トランザクション識別子)
例えば、次のログ エントリには、
111012 14063540   1924 XATEST   CASXO0004S Resource Manager for resource DB7R Transaction end failed: reason -00007, XID: MF_CASDEMOXATEST  000012000000000000000001000001  14:06:35                                                                                                            
The XA End call for resources DB7R failed with return code -00007
次の情報が含まれています。
  • CASXO0004S はエラー コード
  • DB7R はリソース マネージャー
  • Transaction end は失敗が発生したトランザクションの段階
  • -00007 はリソース マネージャーを使用できないことを示すコード
  • MF_CASDEMOXATEST 000026000000000000000001000001 は XID

トランザクションが失敗した場合に講じる措置に関する推奨事項については、特定のデータベース マニュアルを参照してください。

エンタープライズ サーバー XID について

XID トランザクション識別子は、次の要素で構成されます。

要素 長さ 説明
xid-id 6 文字 定数 "MF_CAS"
xid-sysid 4 文字 リージョンの SYSID
xid-applid 8 文字 リージョンの APPLID
xid-start-number 9 桁の数字 リージョン インスタンス番号
xid-start-time 8 桁の数字 リージョン インスタンスの開始時刻
xid-mgr-id 5 桁の数字 XA リソース マネージャー エントリ番号
xid-tran-no 9 桁の数字 タスク番号
xid-branch-no 5 桁の数字 ブランチ番号
例えば、次の XID は、
MF_CASCICSPLA01BAD000000002000551730000100000002300001
次の要素で構成されています。
  • MF_CAS は定数
  • CICS はシステム ID
  • PLA01BAD はリージョン名
  • 000000002 はリージョン インスタンス番号
  • 00055173 はリージョン インスタンスの開始時刻
  • 00001 は、これがテーブル内の最初のリソース マネージャーであることを示す
  • 000000023 はタスク番号
  • 00001 は、これが最初のブランチであることを示す

CAS トレースの読み取り

リソース マネージャー インターフェイスまたは出口トレースを有効にした場合や、XA 呼び出しが失敗した場合は (この場合はトレースが無条件に書き込まれる)、XA 呼び出しをトレースすることができます。次に例を示します。

例 1
このトレースは、NJFXA1 というリソースに対する正常な start 呼び出しを示しています。
Succesful START call
uExit(NJFXA1..) 288 61 11100 40 e90181 9171356 <NJFX A1..> 4e4a4658 41310000 SEP dfheserv(dfhcpuex)
XA(start) 290 61 11100 6d 6d0183 9171356 <XA-- STRT> 58412d2d 53545254 SEP dfhexa()
XA-ID(NJFXA1..) 291 61 11100 6d 6d0282 9171356 <NJFX A1..> 4e4a4658 41310000 SEP dfhexa()
XA-StartT( 61 )Br( 1 ) 292 61 11100 6d 6da081 9171356 <...= ....> 0000003d 00000001 SEP dfhexa() 
XA-Start( 0 ) 293 61 11100 6d 6d1182 9171356 <XSTR ....> 58535452 00000000 SEP dfhexa() 
XA-Return( 0 ) 294 61 11100 6d 6d0384 9171356 <XARC ....> 58415243 00000000 SEP dfhexa()
例 2
このトレースは、NJFXA1 に対する失敗した start 呼び出しを示しています。この失敗により、コード 4 "Found the previous Start call for this Failing Commit call" が返されます。トレースには、XA トランザクション ID とリソース マネージャー ID が含まれています。
uExit(NJFXA1..) 120 57 11100 40 e90181 9165273 <NJFX A1..> 4e4a4658 41310000 SEP dfheserv(dfhcpuex)
XA(T-Sync) 122 57 11100 6d 6d0183 9165273 <XA-T SYNC> 58412d54 53594e43 SEP dfhexa()
XA-ID(NJFXA1..) 123 57 11100 6d 6d0282 9165273 <NJFX A1..> 4e4a4658 41310000 SEP dfhexa()
XA-CommitRC( 4 ) 124 57 11100 6d 6d5082 9165273 <XCOM ....> 58434f4d 00000004 SEP dfhexa()
XA-CommitRC( 4 ) 125 57 11100 6d 6d52f9 9165273 <COMM ....> 434f4d4d 00000004 SEP dfhexa()
XA-Return( 1 ) 130 57 11100 6d 6d0384 9165313 <XARC ....> 58415243 00000001 SEP dfhexa()
XA-StartT( 61 )Br( 1 ) 292 61 11100 6d 6da081 9171356 <...= ....> 0000003d 00000001 SEP dfhexa()

失敗したトランザクションの XID は MF_CASDEMOCICS-FS 00006 0000000000000000001000001 です。