4.4.サブシステムとジョブ待ち行列 |
ここでは、サブシステムとジョブ待ち行列の話題です。 サブシステム記述とジョブ待ち行列サブシステム記述には、必ずといっていいほど、ジョブ待ち行列(Job Queue;JOBQ)が定義されていますね。このJOBQは、出力待ち行列とともに、「待ち行列(Queue)」の一つです。出力待ち行列は、印刷などコンピュータからのデータの出力の順番待ちをする仕組みでしたね。それと同じく、JOBQは、いわば、「入力」の順番待ちをする仕組みです。入力されるのは、「ジョブ」です。 OUTQと違い、JOBQはしっかりと、SBSD内に定義されます。たいてい、このJOBQはSBMJOBなど、SBM(Submit;書類などを提出すること、IBMでは、「投入」と訳す。)で始まるコマンドで、指定されます。下図を見てください。 簡単に言ってしまえば、 SBMJOBで、JOBQにジョブが投入されると、サブシステムの定義内で、そのJOBQに連結した(活動中の)サブシステムの上で、そのジョブが動き出します。 この時、投入元のジョブとは切り離され、独立して、ジョブが動き出します。 JOBQの決定シーケンスさて、簡単に言えば、これだけですが、細かく見てゆくと、様々なパラメータが、このジョブの生成に関わっています。 バッチ投入コマンド(SBMJOB)では、ジョブの要求データは、必ず、JOBQに入らねば、なりません。というより、JOBQ以外、行き場はありません。このJOBQはどのように、決定されるのでしょうか。JOBQ決定の要素を挙げます。 SBMJOBのJOBQの省略値は、*JOBDですね。つまり、同じ、SBMJOBのキーワードJOBDに指定されたものの中にあることになります。さらに、JOBDの省略値は、*USRPRFですので、このユーザープロファイルに指定された、JOBDから指定されます。このJOBQに直接、JOBQ名を指定してもいいですし、特別な、JOBDを指定して、間接的に指定してもいいです。まとめると、
簡単ですね。 JOBQの設定方法このJOBQは、CRTJOBQで、作成します。そして、そのJOBQは、ADDJOBQEによって、特定のサブシステムに関連付けられます。このADDJOBQEは、昔はそのサブシステムが活動中は、できなかったのですが、いつの頃からか、活動中のサブシステムにもADDJOBQEできるようになっています。(V3R1はできる)。 この、ADDJOBQEで重要なのは、MAXACTです。これは、そのJOBQに投入されたジョブをいくつ同時に開始するか、の指定です。もし、10個のジョブが、JOBQにあった場合、サブシステムで、まず活動するジョブの数は、MAXACT=1ならば、一個、それが終わったら、次の一個、さらにそれが終わったら、次の一個と10回繰り返します。また、MAXACT=5ならば、最初5個動いて、さらに、一個終わるたびに、JOBQ上の残りが、一つ減って、活動状態になるわけです。但し、サブシステムのMAXJOBSがもし、一個ならば(普通しない)、JOBQが10っ個もぶら下がっていても、活動するジョブは、一個一個です。このJOBQ間の優先順位は、SEQNBRに影響を受けます。(サブシステムのMAXJOBSは、あくまで、あるサブシステム上で、同時に活動状態にできる、ジョブの数です。)
直接指定の例さて、例として、新しくQGPLの EODというJOBQを、既存のQGPLのサブシステムBATCHに追加して、そこでジョブを動かすシーケンスを掲げます。
これで、ジョブEOD980310は、JOBQ EODに投入され、もし、サブシステムBATCHが活動中ならば、CALL EODがサブシステムBATCH上で実行されます。SEQNBRは、適当なものを指定すること。(20でなくてもいい)。 間接指定の例さらに、ユーザープロファイル DAILYを作成して、ジョブ記述DAILYを作成して、それらを、SBMJOBで指定することも可能です。
これをすることによるメリットは、
というところでしょうか。毎日のジョブで、実行者に依存しないジョブ(誰がやってもよい、日締め処理など)は、やはり、独立したJOBDとUSRPRFを作った方が、AS/400上にドキュメント(記述)が残るので、望ましいと思います。ここから分かるように、各個人がSBMJOBする時も、USRPRFとJOBDからJOBQは決定できます。 サブシステムはとても奥が深いのですが、多くの省略値(ディフォルト)を持っています。この省略値を、注意深く見ることで、そのOS全体の思想というか、目論見というか、が次第に見えてきます。様々な、記述が、相互に絡み合い、渾然一体となって、一つのジョブなり、結果なりを出します。OS400の素晴らしさは、この周到に準備された、省略値にある、といっても過言ではないと思います。なるべく、コマンドの省略値をよく見てみてください。きっと、そのコマンドの性格から、ひいては、OS全体のコンセプトも見えてくるのではないでしょうか。そして、その省略値を生かした、システム作りが、OSとの調和を生むのではないかと思います。これが、一種のデファクトスタンダードにつながっていくことでしょう。 もちろん、省略値以外の値で、システムを作成することも可能ですし、それを止めるつもりもまったくありません。その点、誤解の無い様に、お願いします。 |
You are at K's tips-n-kicks of AS/400
|
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||