IBM i 実行管理：実行管理のレベルと主な関連システムオブジェクト・定義1

あらためて新年おめでとうございます。
個人的にも親しい方が何人もおられる石川県での大地震から一週間以上になりますが、遅い、遅すぎる！とテレビに向かってつぶやく日々が続いております（T T
現地で不休で頑張っている方々には感謝しかありません。が・・・国として備えやヒト・モノ・カネの回し方についてはIT時代にもっとやりようはあるだろうと思わずにはおれません。。
すべての方が笑顔で日常に復帰されることを一日も早く、と祈念しております。。

さて、本題です。
昨年に引き続きIBM i 実行管理の記事をもう少し続けたいと思います。
これまでIBM i のおおまかな実行管理に関連したアーキテクチャーや具体的な仕組みを説明しましたが、今回は以前の記事、 [IBM i 実行管理概要](https://qiita.com/gomAnomalocaris/items/54a41e41fc8bf35238a3)　の具体的なシステムオブジェクトや定義を説明したいと思います。

## IBM i 実行管理の制御レベル・関連オブジェクト・定義（再掲）
IBM i システムの様々なレベルで実行管理の制御が行われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/9e47afce-8843-628d-711e-4fe92de2d19e.png)

## システム全体レベルでの制御
### システム値
IBM i OS 全般の制御を目的としてシステム値 による制御が行われます。
**実行管理関連システム値の例（再掲）**

システム値SYSVAL は **WRKSYSVAL コマンド** 　(やDSPSYSVALコマンド、CHGSYSVALコマンド)で確認・変更できます。（要*SECOFR権限）

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

### ネットワーク属性
**DSPNETAコマンド** **CHGNETAコマンド** などで確認・変更ができます。
主にSNAでのネットワーク属性を指定するものですのでTCP/IPが基本の現在のシステムでは実際にこれらの属性が参照されることは少なくなりました。ですが、古くからある機能でSNAベースで実装されている機能がいくつか残っており、それらを使用する際にはこの属性が使用されることもあります。

※ネットワーク属性を参照する（今でも時々利用する）機能を思い出したら追記したいと思います。

**DSPNETAコマンドの例**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/b0447a48-6d81-6a77-beae-7a24f00b86a2.png)
### TCP/IP構成
現代のネットワークはほぼすべてTCP/IPベースだと思われますので、 **CFGTCPコマンド** から参照できる各種のTCP/IP設定値が重要です。

**CFGTCPコマンドの例**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/619776ed-36b1-a2dd-1533-4eab1c9dc97e.png)

メニューの表記がオープン系とちょっと違うのでわかりにくいかもですが、設定項目はオープン系と共通です。（当然ですが・・）
|CFGTCPメニュー |設定内容|コメント |
|---|---|---|
|1.TCP/IPインターフェースの処理|NIC(LANアダプター)のIPアドレスを指定||
|2.TCP/IP経路の処理|ルーティング経路の指定、デフォルトルートの指定||
|3.TCP/IP属性の変更|キープアライブ、送受信バッファーサイズなど||
|10.TCP/IPホスト・テーブル項目の処理|いわゆるHOSTSファイルと同じです|DNSサーバーが無い場合などに通信先のIP、ホスト名を指定|
|12.TCP/IPドメインの変更|IBM i 自身のTCP/IPホスト名、ドメイン名等を指定|ホスト名検索優先順位 HOSTSCHPTYパラメーターでDNSサーバー or ローカルHOSTS(=10.TCP/IPホスト・テーブル項目の処理で指定）のどちらを先に検索するか指定できます|
|20.TCP/IP適用業務の構成|SNMP,ROUTED,FTP,BOOTP,DHCP,TELNET,SMTP,HTTP等のサーバージョブ（デーモン）の設定||

## サブシステム単位の制御
サブシステムは実行するジョブ特性に応じて類似のジョブを一塊に集めて管理することでシステム全体としてのスループットやレスポンスを向上させることが目的です。
実業務においては、たとえば東日本・西日本（または国内・アジア・欧州・アメリカなど）のように業務単位や実行時間帯によってサブシステムを分割することもよくあります。こうすることで、ある特定の業務や地域についてだけユーザーからの入力処理を停止して（サブシステムを停止して）バッチ処理を行う（その間も別な業務・地域は通常運用が可能）、というような制御が容易にできるからです。

### サブシステム記述 *SBSD での主な設定項目
(1) メイン・メモリ（プール）の割当サイズ
(2) サブシステム内の同時実行可能なジョブ数（SBSDのMAXJOBS、JOBQのMAXACT、経路指定項目RTGEのMAXACT）
(3) ジョブ開始方法（別途記載予定）
(4) サブシステム内で実行されるジョブについて、実行するプログラム毎に処理環境を選択するためのテーブル
(5) 対話型ジョブでサブシステムに接続可能な端末タイプ(*DEVDのTYPE 5555など)、端末名の指定（*DEVDの端末ID=オブジェクト名=DSP01など）

### システム提供のサブシステム記述の例
|サブシステム記述 *SBSD|主な用途|コメント |
|---|---|---|
|QSYS/QBASE|IBM i OSインストールデフォルトの基本サブシステム記述|システム値QCTLSBSDでQBASEを指定するとこの記述が使用される。QBASEは小規模なシステム向けでQBATCHI,QINTERなどのサブシステムを使用せずすべてQBASEで動作する。現代の環境はほぼ使用しない|
|QSYS/QCTL|現代の殆どのIBM i システムでQBASEの代わりに使用されている|システム値QCTLSBSDでこのサブシステムを指定する。QINTER,QBATCHなどのサブシステムが起動される。現代はほぼ100%このサブシステム記述を使用|
|QSYS/QINTER|5250端末を接続し対話ジョブを実行するサブシステム|大規模なシステムではQINTER2,3,,のように複数の対話型サブシステムを起動しユーザーを分散させることもあります。英語環境、中国語環境などを別サブシステムで稼働する場合も|
|QSYS/QBATCH|バッチジョブを実行するためのサブシステム|特定業務専用に複数のバッチ用サブシステムを（QBATCH SBSDをコピーして）起動する例もよくあります|
|QSYS/QSPL|印刷用サブシステム||
|QSYS/QPGMR|プログラマー用サブシステム|資料にあったので記載しましたが、、使っているのを多分見たことがありません・・w現代こそ使えるかも？|
|QSYS/QINTER2924|日本語のIBM i を導入した際にデフォで作成される英語環境の5250端末用サブシステム|QSYS/QINTERとの違いを調べると英語・日本語の環境の違いがわかります|
|QSYS/QSERVER|サーバージョブ用サブシステム|※詳細追記予定|
|QHTTPSVR/QHTTPSVR|HTTPサーバー用サブシステム||
|QSYS/QSYSWRK|サーバージョブ用サブシステム|※詳細追記予定|
|QSYS/QUSRWRK|サーバージョブ用サブシステム|※詳細追記予定|
|QWAS9/QWAS9|WebSphere Application Server(tWAS)用サブシステム|QWAS85はWAS8.5用。IBM i ではサブシステムを起動することで複数バージョンのAPサーバーを同時実行可能です|


※次記事に続く・・