メニューボタン
IBMi海外記事2015.01.28

このジョブ番号を反転する: ジョブ番号をリセットする際にジョブ・キュー制御ユーティリティーを調整する

こんにちは、Joe:

IBM i ジョブ・キューを制御するためのスケルトン・プログラムの作成に関するあなたの記事を読んだところです。特定のジョブ・キュー内のジョブがリストされたジョブ・キュー物理ファイル (WRKJOBQPF) で、キューにある各ジョブの 6 桁のジョブ番号順にそのファイルを入力しました。これは良い考えだとは思いません。
理由はこうです. . .

Charles

「ジョブ番号が毎日 (000001 へ) 反転する可能性がある忙しいシステムでは、結果が芳しくないときがあります。言うまでもありませんが、これはジョブ番号が (000001 へ) リセットするときに必ず発生します。ジョブ・キュー・スプール・ファイルの出力には正しい順序でジョブがリストされるため、キーを指定する必要がない特定のフィールドを検索しています。」

Charlesのポイントはここです。今日のシステムでは、IBM i オペレーティング・システムが実行依頼されたジョブに割り当てることができるジョブ番号の数は、比較的限られています。IBM は、実行依頼されたジョブの番号が最長で 6 桁までになるよう、システムをプログラムしました。

つまり、IBM i パーティションのジョブ番号範囲は 000001 から 999999 まで、つまり概算で 100 万個の固有ジョブ番号になると考えられます。システムが 999999 ジョブを通過すると、反転し、ジョブ番号 000001 からカウントを再開します。IBM i で再利用されるジョブ番号は重複ジョブという問題が発生しない点を覚えておくことも重要です。オペレーティング・システムは、単にジョブ番号ではなく、固有の「ジョブ番号/ユーザー名/ジョブ名」の組み合わせにより、個々のジョブを参照するためです。

問題

ジョブ番号のリセットは、思っている以上に頻繁に発生します。小規模なパーティションでは、100 万ジョブを実行依頼し、反転するのにより時間がかかります。おそらく、1 年か 2 年はかかります。ところが、1 日に何万ものジョブを実行する可能性がある大規模なパーティションでは、ジョブ番号は、1 週間または 1 月に数回といった具合に、定期的に反転する可能性があります。

私の WRKJOBQPF ファイルでは、ジョブ番号 (JOBNUM フィールド) ごとに降順にファイルを入力しました。WRKJOBQPF の DDS は以下のようになっています。

技術情報01

ファイル番号が 999999 から 000001 へと反転していない限り、これにより、ジョブは新しいジョブ (一番大きなジョブ番号) から古いジョブ (一番新しいファイル番号) へ順序良く並びます。

Charlesが指摘したように、以下のように JOBNUM キーを丸ごと削除し、到着順にレコードを処理するだけで簡単に修正されます。

我々はAppleとIBMのロマンスの現実の結果が見られる2015年に期待を寄せています。プレスリリース以上の多くのものを生み出すことを切に望んでいます。

技術情報02

これにより、私のスケルトン・ジョブ・プログラムは常に、ジョブ番号に関係なく、受け取った順序でジョブ・キューのレコードを処理します。こうすることで常に、反転したジョブ番号が、より大きなジョブ番号の範囲にあるジョブ番号を持ったより古いジョブの上の「000001」から開始します。何があっても、順序は復元され、ジョブ・キュー・ファイルに保持されます。

そのため、到着順にジョブを処理するジョブ・キュー制御ユーティリティーを使用している場合、必ず WRKJOBQPF ファイルに、この 1 つのちょっとした変更を実施してください。ジョブ・キュー項目の処理方法に大きな違いが出てくる可能性があります。

--Joe

望むらくは、IBMはIBM iの将来の場所を見出して欲しい。今、我々の全ては将来のPower9システムのこれらGPUコプロセッサー上で稼働する高度なアナリティクスを真剣に考え出す必要があります。今がそのアプリケーションの計画を立てるときです。今がIBM iを徹底的に拡張、向上させるときであり、またSystem/38とAS/400のときから組み込まれてきたリレーショナル・データベースのようにこのプラットフォームにアナリティクスとその他のシミュレーションとモデリングを組み込むことです。

あわせて読みたい記事

PAGE TOP