※昨日の 記事#1 の続きです。
ジョブ単位の制御
ジョブ処理要件を設定した ジョブ記述*JOBD とクラス*CLS によって制御します。
ジョブ記述 *JOBD での主な設定項目
(1)ジョブ待ち行列 *JOBQ/出力待ち行列 *OUTQ での優先順位
(2)ライブラリーリスト *LIBL でのプログラム実行時のオブジェクト探索順序
WRKJOBD QGPL/QDFTJOBD コマンドを実行 OPT.2 or 5を実行
※ ジョブ日付 :OSの日付と別にこのジョブ専用で使用(指定)したい日付を設定することが出来ます。バッチ処理などで日付をまたいでしまう場合など、実際のデータ発生日と処理日がずれる場合に指定する、などが代表例でしょうか?
※ ジョブ優先順位とジョブ待ち行列 ジョブ待ち行列名と優先順位を指定
※ 出力優先順位と出力待ち行列 出力待ち行列名と優先順位を指定。この例では USRPRF が指定されているのでジョブを実行するユーザーIDに指定されているOUTQ名が使用されます。
※ 会計コード アカウンティングに使用される会計コードを設定することもできます。
※ 経路指定データ をサブシステム記述 *SBSD の経路指定項目の設定値と比較することでこのジョブが使用するクラス *CLS (ほか)が決定されます。
※ 初期ライブラリーリスト このジョブ記述で使用される(ユーザーの)初期ライブラリーリストを指定。画像では *SYSVAL となっていますので、システム値 QUSRLIBL の設定が参照されます。
ライブラリー(ライブラリーリスト)を変えたいユーザーID毎に専用の*JOBDを作成し、それぞれのユーザーIDが必要とするライブラリーリストをここに設定する、といった方法はよく実施されていると思います。
DSPSYSVAL QUSRLIBLコマンドで確認すると、デフォルトは下記のようになります。
システム提供のジョブ記述 *JOBD
ジョブ記述 | 説明 | コメント |
---|---|---|
QGPL/QDFTJOBD | ユーザージョブが使用するデフォルトのジョブ記述 | ユーザーが実行するジョブでデフォルトで使用されるジョブ記述 |
ジョブ記述 *JOBD での指定値の一時的な変更
**プログラム、ジョブの開始前に CHGJOBコマンドを実行すると、ジョブ記述*JOBD で指定した上記(ほか)の指定値を一時的に変更することが出来ます。
これまで説明した実行管理関連の設定値以外にも、文字コードCCSIDの変更なども(CCSID 5026/5035が混在するシステムなどで)よく見かける気がします。
クラス *CLS での設定項目
(1)プログラム実行時の実行優先順位
(2)CPUのタイムスライス(ms)
(3)PURGE *YES/*NO の指定(対話型かバッチ型かの指定)
※ジョブがどのクラス *CLS を使用するかはサブシステム記述 *SBSDの経路指定項目(DSPSBSDコマンドのOPT.7やCHGRTGEコマンド等で確認操作)の指定に従って決定されます。 階層(関連)が深く少しわかりにくいですがきちんと覚えておきたいポイントです。
経路指定項目の明細表示 画面に使用されるクラス *CLS が指定されています。
下図では クラス *CLS QSYS/QBATCH が指定されています。
クラス *CLS QSYS/QBATCH の設定 DSPCLSコマンド
下図では(CPU処理待ち時の)実行優先順位 50 (対話型の場合だとデフォルトは20か30)、CPUタイムスライスが5,000ミリ秒であることが分かります。
システム提供のクラス *CLS
クラス | 説明 | コメント |
---|---|---|
QINTER | 対話型ジョブ用のクラス | |
QBATCH | バッチ型ジョブ用のクラス |