2.2.17 MSDTC連携機能を使用している場合の障害発生時の運用
MSDTC連携機能を使用している場合に障害が発生したときは,障害が回復されるとトランザクションリカバリサービスがすべてのトランザクションを自動的に回復します。しかし,次に示す条件を両方とも満たす場合は,MSDTCが管理するトランザクションとOpenTP1が管理するトランザクションを強制決着させてください。
-
コミットの準備が完了した状態で障害が発生して,長時間に渡って復旧できないなどの状態
-
トランザクションを強制的にコミットまたはロールバックしてMSDTCやOpenTP1が使用するリソースを解放する必要がある状態
(1) トランザクションを強制決着させる方法
MSDTCが管理するトランザクションとOpenTP1が管理するトランザクションを強制決着させる方法について説明します。
(a) MSDTCが管理するトランザクションを強制決着させる方法
dcomcnfgコマンドを実行して[コンポーネント サービス]を起動し,[コンポーネント サービス]−[コンピュータ]−[マイコンピュータ]−[分散トランザクション コーディネータ]−[トランザクションの一覧]画面で行います。詳細については,Microsoft 管理コンソールのヘルプを参照してください。
(b) OpenTP1が管理するトランザクションを強制決着させる方法
TP1/Server Baseのトランザクションを強制決着させる場合は,xarforceコマンドを使用します。詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。
TP1/LiNKでトランザクションを強制決着させる場合は,[TP1/LiNK XAリソースサービス管理]ダイアログボックスで行います。詳細については,マニュアル「TP1/LiNK 使用の手引」を参照してください。
(2) トランザクションを強制決着させる際の運用方法
単一フェーズコミット最適化を使用していない場合は,次に示すIDを照合して,各トランザクションのステータスに応じてトランザクションを強制決着させてください。
-
MSDTCが管理するトランザクションで表示される[トランザクションの一覧]画面の[作業IDユニット]に表示されるID
-
TP1/Server Baseのxarlsコマンドで表示されるDID,またはTP1/LiNKの[TP1/LiNK XAリソースサービス管理]ダイアログボックスに表示されるDID
次に示す場合は,あらかじめ決めておいた運用手順に従ってトランザクションを強制決着させてください。ただしこの場合,MSDTCが管理するトランザクションとOpenTP1が管理するトランザクションの整合性は保証されないおそれがあります。
-
MSDTCまたはOpenTP1に障害が発生したことが原因となってIDの照合ができない場合
-
単一フェーズコミット最適化を使用している場合※
- 注※
-
TP1/Server Baseの場合はxarlsコマンドの実行,TP1/LiNKの場合は[TP1/LiNK XAリソースサービス管理]ダイアログボックスで,DIDを表示できないことがあります。このため,IDを照合して,各トランザクションのステータスに応じてトランザクションを強制決着させることができません。