11.1.1 スレッドの回復
スレッドの回復では,システムの処理を続行したまま,障害個所を部分的に回復してスレッドを再生成します。
UAP内の障害発生によるスレッドダウン,通信障害,リソースマネジャの障害などが原因で未決着状態のトランザクションは,回復スレッドで回復します。回復スレッドは,障害発生時点のトランザクションの情報を基に,トランザクションを回復します。
(1) UAP内の障害発生によるスレッドダウン時のスレッドの回復
UAP内の障害発生によるスレッドダウンは,ERRTRN3を起動して,UAP異常発生元のトランザクション情報をUAPに渡します。その後,回復スレッドでトランザクションを回復します。
UAP内で障害が発生してスレッドダウンした場合の,スレッドの回復の処理の流れを次の図に示します。
(2) 通信障害またはリソースマネジャの障害発生時のスレッドの回復
通信障害またはリソースマネジャの障害が発生してトランザクションが決着できなかった場合は,次に示す処理を行い,決着できなかったトランザクション情報をUAPに渡します。
-
UAP処理リターン後の同期点処理で障害が発生した場合
処理スレッドは,エラートランザクション(ERRTRNR)を起動します。
-
ライブラリ関数(ee_trn_chained_commit関数,ee_trn_chained_rollback関数)による同期点処理(コミットまたはロールバック)で障害が発生した場合
ライブラリ関数がエラーリターンします。
その後,通信障害監視機能またはリソースマネジャ障害監視機能を使用して,障害の回復を監視し,障害が回復すると回復スレッドでトランザクションの回復処理をします。
UAP処理リターン後の同期点処理でリソースマネジャの障害が発生した場合のスレッドの回復の処理の流れを次の図に示します。