はじめに
SAV系コマンドを使用する際、皆さんはどのようなパラメーターを指定していますか?
この記事では、SAV系コマンドのパラメーターの一つである「PRECHK」(オブジェクト事前検査)による、挙動の違いをご紹介します。
PRECHK(オブジェクト事前検査)とは
IBM Documentationによると、「PRECHK」を「*YES」とした場合、次のような挙動になります。
次のいずれかが真の場合に,ライブラリーの保管操作を終了するかどうかを指定します。
- オブジェクトが存在していない。
- ライブラリーまたはオブジェクトに損傷があることが前に判明している。
- ライブラリーまたはオブジェクトが他のジョブによってロックされている。
- 保管操作の要求元に,そのライブラリーの権限がないか,あるいはオブジェクトの保管権限がない。
PRECHK(*YES/*NO)」の実例
それでは、実際に「PRECHK」を「*YES」にした場合と「*NO」にした場合の違いを確認してみましょう。
前提
SAVOBJ
の保管対象に、存在するオブジェクト(例:QTEMP/QCLLESRC)と、存在しないオブジェクト(例:QTEMP/QRPGLESRC)を指定して実行します。
*YES
「ライブラリー ××× からオブジェクトが保管されませんでした。」というメッセージが表示されます。
もちろんDSPSAVF
でSAVFを確認しても「(保管ファイルにレコードがありません)」と表示され、存在するオブジェクトも保管されません。
*NO
「○個のオブジェクトが ××× から保管されました。 ○ が保管されていません。」というメッセージが表示されます。
DSPSAVF
でSAVFを確認すると、存在するオブジェクトのみが保管されます。
ご参考になれば幸いです。最後までお読み頂きありがとうございます。