3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM i 実行管理概要

Last updated at Posted at 2023-12-15

IBM i の実行管理は様々なレベルで調整が行われています。以下の図は主要なものをまとめています。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f313031313339342f39326137613430312d666233342d376661312d303039362d6233643536636465373732642.png

IBM i システム全体の制御:システム値

システム全体を制御する目的で設定するものにシステム値 SYSVAL があります。
システム値には実行管理以外にも、セキュリティ、日付設定、ロギング設定、ストレージ閾値設定、言語設定、電源オフオン設定などがあります。
実行管理に関係するシステム値は WRKSYSVAL SYSVAL(*ALC) と SYSVAL(*STG) SYSVAL(*SYSCTL) のコマンドで表示できます。以下でごく代表的なものを記載します。

システム値 デフォルト値 説明 コメント
QMAXJOB 163520 1つのIBM i OS上で許可されるジョブの最大数。この値に達すると追加のジョブが開始できなくなる。
QACTJOB 200 システムIPL中にシステム全体で同時に実行可能なスレッド数
QBASACTLVL 147 プール#2 ベースプールで同時に活動化できるスレッド数最大値。システム値QPFRADJが1,2,3に設定されている場合、システムが自動調整し常に変動する
QSYSLIBL QSYS QSYS2 QHLPSYS QUSRSYS ジョブがデフォルトで参照するライブラリーのシステム関係部分
QUSRLIBL QGPL QTEMP ジョブがデフォルトで参照するライブラリーのユーザー部分

システム値は全て、IBM i OS初期導入時にデフォルトが設定されます。設定値はCHGSYSVALコマンドで変更できます。
※変更不可のシステム値も存在。例:システム製造番号:導入したハードウェアのシリアルNO.が自動セットされます。

※(参考)現在は使われていないシステム値

システム値 説明 コメント
QMAXACTLVL システム全体で同時に実行可能なスレッド数 現在のIBM i 7.xでは参照されません。(システム自動調整に変わっておりこの値は無視されます)Java等マルチスレッドプロラムが一般的になって以降、スレッド数での管理があまり現実的で無い事、ハードウェア性能がAS/400時代から劇的に向上したことなどが理由だと思います。

サブシステムでの制御

個々のサブシステム記述 *SBSD に対話型、バッチ型など処理するジョブの特性に合った処理環境を設定します。
デフォルトでIBM提供の複数のサブシステム記述がIBM i OS上に存在している。これらをカスタマイズしてユーザー独自のサブシステム記述を作ることが可能。

サブシステム記述 SBSDの設定 デフォルト 説明  コメント
POOLS 記憶域サイズ SBSで異なる ジョブが実行されるメインメモリのサイズ
POOLS 活動レベル SBSで異なる プール内で同時に実行できるスレッドの最大数

サブシステムの設定はCHGSBSDコマンドで変更できる。(実際に利用(開始)するにはSTRSBSコマンドで実行が必要)
サブシステムで設定する主な設定は以下
 - サブシステムで実行するジョブが使用するメインメモリのプール指定
 - サブシステム内で同時実行可能なジョブ数 MAXJOBS
 - ジョブの開始方法(別途説明します)
 - サブシステム内で実行するジョブの処理環境を細かく指定するための経路指定テーブル(後述)
 - 対話型サブシステムではこのサブシステムに接続させる端末ID、端末タイプ

ジョブ単位の制御

ジョブ記述によって、個々のジョブの実行特性を指定します。
デフォルトでIBM提供の複数のジョブ記述が存在します。これらをCHGJOBDコマンドで修正したり、コピーしてユーザー独自のジョブ記述を作ることも可能。
ジョブ記述の例をいくつか示します。

ジョブ記述の項目 JOBD名 デフォルト 説明  コメント
ジョブ待ち行列JOBQ QGPL/QDFTJOBD QGPL/QBATCH バッチジョブその他、最も一般的なジョブが投入された際のデフォルトとして使用される
出力待ち行列OUTQ QGPL/QDFTJOBD *USRPRF *USRPRFはジョブのユーザープロフィールで指定されたOUTQを使用 ユーザープロフィールを業務単位(営業業務、経理業務等や、地域別のユーザー、本社・子会社・関係会社等とし夫々に別なOUTQ割当することは多い
初期ライブラリーリスト QGPL/QDFTJOBD *SYSVAL システム値QUSRLIBLに指定したライブラリーを参照する

上記以外にジョブ記述では以下のような指定も行います。
- 経路指定データ(後述)
- ジョブ日付
- ジョブ待ち行列内でのジョブスケジュール優先順位
- ジョブにより作成されるスプールファイルのOUTQ内での出力優先順位

※ジョブ記述 JOBD の理解はIBM i の実行管理の仕組みを理解する上で重要です。

クラス

前の記事
活動レベル中でのCPUのディスパッチ で説明した、クラス CLS も実行管理機能の一つです。
個々のジョブのCPU タイムスライス値やCPU内の実行優先順位を指定しています。

次の説明では具体的なサブシステムを挙げて、ジョブの実行環境がどのように決まるかを説明したいと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?