20.11.2 障害によってトランザクションがFORGETTING状態になったときの対処方法
(1) FORGETTING状態のトランザクションとは
ここでいうFORGETTING状態のトランザクションとは,次に示す条件をすべて満たすトランザクションのことです。
-
pdls -d trnコマンドの実行結果のSTATUSで,トランザクション第1状態がFORGETTING(トランザクション終了処理中)である
-
pdls -d trnコマンドの実行結果のSTATUSで,トランザクション第3状態がw(トランザクションマネジャとHiRDB間でトランザクションの同期合わせ中)である
例えば,次のようなトランザクションのことです。
pdls -d trn HOSTNAME : host1(153201) TRNGID TRNBID STATUS PID SVID B-SVID HRD1unt100020b51 HRD1unt100020038 FORGETTING(r,w) 0 bes1 fes1
(2) FORGETTING状態のトランザクションが発生すると
次に示すどれかの条件を満たす障害が発生すると,FORGETTING状態のトランザクションがHiRDBで発生することがあります。
-
トランザクションマネジャが異常終了中である
-
トランザクションマネジャのトランザクション開始後,最初にHiRDBにアクセスするSQL(FirstSQL)がエラーになる
-
トランザクションマネジャが異常終了して,HiRDBのトランザクション回復完了前にトランザクションマネジャの再起動が完了する(FORGETTING状態のトランザクションが発生する例を次の図に示します)
図20‒3 トランザクションマネジャの再起動完了後にFORGETTING状態のトランザクションが発生する例
FORGETTING状態のトランザクションはHiRDB内のトランザクションに関するメモリ資源を消費するため,FORGETTING状態のトランザクションが多数発生すると,接続ユーザ数分のトランザクションの同時実行ができなくなるなどの障害が発生します。
(3) 対処方法
FORGETTING状態のトランザクションが発生した場合は,次に示すどちらかの方法で対処してください。
-
トランザクションマネジャを再起動します。
-
pdfgtコマンドを実行してFORGETTING状態のトランザクションを強制終了します。