3.15.3 XAリソースサービスの開始と終了
(1) XAリソースサービスの開始
XAリソースサービスを開始すると,XARファイルは初期化されます。XAリソースサービスの開始に失敗した場合,OpenTP1の起動も失敗します。
XAリソースサービスを使用するための定義については,「3.15.1(2) 前提となる定義」を参照してください。
(2) XAリソースサービスの再開始
XAリソースサービスを再開始するにはOpenTP1を再開始します。前回OpenTP1を正常開始したときのXAリソースサービスの開始状態によって,XAリソースサービスを再開始するかどうかが決定します。前回のOpenTP1の正常開始時にXAリソースサービスを開始していれば,XAリソースサービスを再開始します。XAリソースサービスを開始していなければ,XAリソースサービスを再開始しません。
XAリソースサービスを再開始すると,XARファイルは初期化されます。
XAリソースサービスの再開始に失敗した場合,OpenTP1の再開始も失敗します。
OpenTP1再開始時に,次の定義オペランドおよび定義コマンドを変更できます。
-
xar_eventtrace_level:XARイベントトレース情報の出力レベル
-
xar_eventtrace_record:XARイベントトレース情報ファイルの最大出力レコード数
-
xar_session_time:アイドル状態のトランザクションブランチの監視時間
-
xar_prf_trace_level:XAR性能検証用トレース情報の取得レベル
-
xarfile:XAR物理ファイルの指定
OpenTP1の再開始時に定義コマンドxarfileの値を変更するのはXARファイルに障害が発生した場合だけです。それ以外の場合,OpenTP1の再開始時に定義コマンドxarfileを変更すると,トランザクションブランチを回復できなくなるので注意してください。XARファイルに障害が発生したときのトランザクションブランチの回復方法については,「3.15.4 XARファイルに障害が発生した場合の運用」を参照してください。
XAリソースサービスを再開始すると,XARファイルを使用して前回のトランザクションブランチの状態に戻す処理(トランザクションブランチの回復処理)をします。バックアップ用XARファイルが使用されている場合,バックアップ用XARファイルからトランザクションブランチを回復します。バックアップ用XARファイルが使用されていない場合,オンライン用XARファイルからトランザクションブランチを回復します。
トランザクションブランチの回復処理では,XARファイルの各レコードに記録されている前回のトランザクション情報を調査します。1相目の状態(Prepared)のまま決着が行われていないトランザクションブランチの場合,再びPrepared状態に戻します。XARファイルにはトランザクションブランチのXID情報が含まれているため,再びXAリソースサービスで連携するアプリケーションサーバからのトランザクション決着指示を受け付けられるようになります。
Heuristically completed状態のトランザクションブランチの場合,再びHeuristically completed状態に戻し,ヒューリスティックを完了させます。
Prepared状態になる前(Active,Idle)のトランザクションブランチの場合,すべてロールバックします。これらのトランザクションブランチのXID情報は削除されるため,XAリソースサービスで連携するアプリケーションサーバからトランザクションブランチの決着要求が来てもコミット決着できません。
また,トランザクション決着済み(コミットまたはロールバック)のトランザクションブランチの場合,トランザクションブランチの回復処理が行われてもトランザクションの決着結果は変わりません。
トランザクションの状態ごとのトランザクションブランチの回復処理を次の表に示します。
トランザクション状態 |
処置 |
XID情報 |
|
---|---|---|---|
Active |
ロールバック |
削除 |
|
Idle |
ロールバック |
削除 |
|
Prepared |
OpenTP1のPJ出力前 |
トランザクション決着待ち |
残す |
OpenTP1のPJ出力後 |
コミット済み |
削除 |
|
Rollback only |
ロールバック |
削除 |
|
Heuristically completed |
ヒューリスティック完了 |
残す |