2.3.6 障害発生時のトランザクションの同期点を検証する方法

CUPから開始したトランザクションで障害が発生した場合,そのトランザクションブランチがコミットされたかどうかを検証できます。この場合,トランザクション開始後に,必ずgetTrnIDメソッドを呼び出して,現在のトランザクショングローバル識別子,およびトランザクションブランチ識別子を取得しておく必要があります。

CUPで取得しておいたトランザクショングローバル識別子と,TP1/Server側のメッセージログファイルに出力されるトランザクションの結果を突き合わせると,CUPから開始したトランザクションがコミットされたかどうか検証できます。

TP1/Serverのメッセージログファイルの内容は,logcatコマンドで表示できます。logcatコマンドについては,マニュアル「OpenTP1 運用と操作」を参照してください。

障害発生時のトランザクションの同期点を検証する方法を次の図に示します。

図2-17 障害発生時のトランザクションの同期点を検証する方法

[図データ]

  1. CUPからtrnBeginメソッドを呼び出してトランザクションが開始されると,TP1/Serverはそのトランザクションのトランザクショングローバル識別子をTP1/Client/Jに通知します。
  2. CUPはgetTrnIDメソッドを呼び出して,トランザクショングローバル識別子を取得します。
  3. 取得したトランザクショングローバル識別子を表示します。
  4. CUPで障害が発生し,TP1/Server側でタイムアウトが発生すると,トランザクションの処理結果がTP1/Serverのメッセージログファイルに出力されます。
  5. 3.で表示したトランザクショングローバル識別子とメッセージログファイルの内容を検証します。