ロードコマンド(dlofentry)が異常終了した場合は、次の作業が必要となります。
エラー原因の除去
格納途中のファイルの削除
作成中状態・無効状態の管理レコードの削除
これらの作業を行わなかった場合、再度dlofentryコマンドを実行すると異常終了することがあります。
以下にdlofentryコマンドが異常終了した時のリカバリ手順について説明します。
dlofentryコマンドが異常終了した原因を、資源管理ログから判断し、対処を行います。
dlofentryコマンド実行時に発生する代表的なトラブルについては、"トラブルシューティング集"の" 3.1 データ格納時の異常"を参照してください。
また出力されたメッセージの詳細については”メッセージ集”を参照してください。
dlofentryコマンドは、データ格納時にエラーが発生すると、格納途中の蓄積データファイルを削除します。
ただしプロセスダウンや強制終了などにより削除できなかった場合、格納途中の蓄積データファイルが残存することがあります。
格納途中のファイルが抽出対象となることはありませんが、ディスク容量の枯渇を防ぐため、削除してください。
格納途中のファイルがあるかは、dcccheckコマンドを使用して確認します。dcccheckコマンドを使用した不整合の検出と、検出した後の対処については、本書の"3.7 不整合の検出"を参照してください。
dlofentryコマンドは、データ格納時にエラーが発生すると、資源管理上の管理レコードを削除します。
しかしプロセスダウンや、ロードコマンドの強制終了、資源管理に異常が発生した場合は、資源管理上の管理レコードは"作成中"状態のまま残ってしまいます。"作成中"状態の管理レコードは、蓄積データファイル作成中状態解除コマンド(dccunlock)と資源管理状態変更コマンド(dccres)を使用して削除します。
以下に管理レコードの削除手順を示します。
注意
作成中状態の管理レコードが存在しても、運用は継続できます。
ただし異常終了したときと同じ蓄積データファイル名ではデータの格納が行えなくなります。
排他獲得番号の確認
dlofentryコマンドが管理レコードを登録する時に資源管理から排他獲得番号が払い出されます。払い出された排他獲得番号は資源管理ログファイルにメッセージID"dcr04021-i"のログとして出力されます。
排他獲得番号は、ローダを実行した時間とログに出力されているプロセスIDから特定します。
例
入力データファイルの形式に誤りがあったときのログ出力例
dcr04021-i (001709) 排他獲得番号=6837 ファイル登録日時=2009/11/16/16:52:31.852 dlx00021-e (001709) in_fileパラメタに指定したファイルに誤りがあります。(エラーレコード=1) dla00004-i (001709) 蓄積データファイル作成・登録処理は異常終了しました。
ロードコマンド異常終了時に出力されたメッセージID「dla00004-i」のログからプロセスIDが「001709」であることがわかります。
同じプロセスID「001709」を持つメッセージID「dcr04021-i」のログから、排他獲得番号「6837」、ファイル登録日時が「2009/11/16/16:52:31.852」であることがわかります。
ロードコマンドを強制終了した場合はメッセージID「dla00004-i」のログが出力されないため、ロードコマンドを実行した時間からメッセージID「dlg04021-i」のログを探してください。
資源管理ログファイルにメッセージID"dcr04021-i"のログが出力されていない場合は、資源管理に管理レコードが作成されていないため、以降の作業は不要です。障害の原因を取り除いてロードコマンドを再実行してください。
ポイント
不整合検出コマンド(dcccheck)を使用すると、カテゴリごとに対処が必要な管理レコードと排他獲得番号の一覧を出力できます。
ただしdcccheckコマンドを実行中は、対象となるカテゴリへのデータの格納および抽出が行えません。
dcccheckコマンドを使用する場合は、事前に運用状況を確認してください。
dccunlockコマンドの実行
dccunlockコマンドにより管理レコードを無効化します。dccunlockコマンドは、排他獲得番号と排他獲得日時を元に、"作成中"状態の管理レコードを"無効"状態に変更します。
例
蓄積データファイル作成中状態解除コマンドにより管理レコードを無効化する
# dccunlock mode=cf cat_name=cat exc_num=6837 exc_date=2009/11/16/16:52:31.852 プログラムを開始します。(dccunlock) カテゴリ名 : cat 排他獲得番号 : 6837 排他獲得日時 : 2009/11/16/16:52:31.852 解除状態 : 解除しました |
実行時に以下のメッセージが表示された場合、該当レコードはすでに無効化されています。
問題はないため、次の手順に進んでください。
カテゴリ名 : cat 排他獲得番号 : 6837 排他獲得日時 : 2009/11/16/16:52:31.852 解除状態 : すでに解除済です |
dccresコマンド実行
dccresコマンドにより、資源管理から2の手順で"無効"状態に変更された管理レコードを削除します。
例
資源管理状態変更コマンドにより無効レコードを削除する
# dccres mode=dri cat_name=cat regi_date=2009/11/16/16:52:31.852 復帰値 : 正常終了しました。(エラーコード=0) # |