当シリーズを始めた経緯や、検証環境の情報についてはこちらのindexページをご覧ください。
IEFSSNxxとは
IEFSSNxxは、z/OSで使用するサブシステムを定義するためのPARMLIBメンバーです。
サブシステムとは、JES2のようにジョブを管理したり、SMSなどのストレージ機能を提供するシステムサービスの構成単位です。このメンバーで、どのサブシステムをどのような順序で、どのような条件で初期化するかを指定します。
役割
| 項目 | 内容 |
|---|---|
| サブシステムの定義 | SUBSYSステートメントで各サブシステム(JES、SMSなど)を登録 |
| 初期化ルーチンの指定 | INITRTNで呼び出すプログラムを指定し、INITPARMで初期化 パラメータを渡す |
| 1次サブシステム設定 | PRIMARY(YES)でJES2/JES3などの1次サブシステムを指定可能 |
| 並列初期化の指定 | BEGINPARALLELを使うと複数のサブシステムを同時に初期化してIPL時間を短縮 |
| 初期化順序の制御 | 並列実行できないサブシステム(例:SMS)を順序通りに初期化するよう制御 |
| 動的操作の補助 | 一部サブシステムはSETSSIコマンドで動的に追加・停止・削除が可能(対応している場合) |
想定される注意点/考慮点
初期化順序に関する注意
-
SMSを使用しない場合 → 最初にJESを定義
-
SMSを使用する場合 → JESより前にSMSを定義(順序を誤ると依存関係のエラーが発生)
並列初期化(BEGINPARALLEL)の制約
-
並列初期化をサポートしないサブシステム(例:SMS)はBEGINPARALLELの前に定義する必要あり
-
BEGINPARALLELは1つのみ有効(複数指定しても最初だけが使用される)
1次サブシステムに関する制約
-
PRIMARY(YES)は1つだけ(通常JES2)
-
複数定義すると、2つ目以降は無視されIEFJ008Iメッセージが出力される
-
1次サブシステムは
SETSSI ADDでは動的に追加できない
STARTコマンド使用時の注意
STARTサブシステム名をSUB=JES2を指定せずに実行すると、STARTコマンドの解決順に従って処理される
→ マスター・スケジューラー下で処理された場合はMSTJCLxxのライブラリのみが参照されるため、PROC00が存在しない場合はIEFC612Iエラーが発生
IEFJ008I
このメッセージは、指定された最初の基本サブシステム名は受け入れられるが、後続の基本サブシステム名はすべて無視されることを示します。
「MVS システム・メッセージ」IEFJ メッセージ IEFJ008I
IEFC612I
このメッセージは、指定されたプロシージャーが、JCLLIBまたはシステム・プロシージャー・ライブラリ内に存在しないため検出できなかったことを示します。
[「MVS システム・メッセージ」IEFC メッセージ IEFC612I ]https://www.ibm.com/docs/ja/zos/3.2.0?topic=messages-iefc612i)
実機検証
静的変更(IPL)
IEASYS99でIEFSSN99と指定してIPLをしました。

IEE252I MEMBER IEFSSN99 FOUND IN ...
IEE252I
このメッセージは、システム初期設定中で、メンバーがPARMLIBデータ・セットで検出されたときに出てきます。
[「MVS システム・メッセージ」IEA メッセージ IEA252I ]https://www.ibm.com/docs/ja/zos/2.5.0?topic=iee399i-iee252i)
動的変更
SETSSIコマンドで動的変更を行うことができます。
動的変更を行う前に、DISPLAYコマンドでACTIVATE状態になっているサブシステムを調べます。
D SSI,STATUS=ACT
このコマンドを打つと以下のようにACTIVATE状態になっているサブシステムが表されます。

SETSSIコマンドは動的サブシステムで、かつSETSSIの利用を許可している場合のみ可能です。

失敗例として、WTR3はCOMMANDS=REJECTとなっております。この設定では、SETSSIコマンドのうちACTIVATE およびDEACTIVATEは許可されていないため、DEACTIVATEへ変更することはできません。ただし、DELETEは実行可能です。
実際にSETSSIコマンドで実行してみました。

実行後の結果は以下のように、WTR3はSETSSIコマンドの利用が不可能というメッセージが返されました。

SETSSIコマンド利用が許可されているN64Jというサブシステムに対して試してみました。

実行例として次のようです。

注意点として、SETSSI ACTIVATEコマンドはNetViewサブシステムでサポートされていないため、DEACTIVATEした状態からACTIVATEに戻ることはできません。そのため、対処方法としては、STARTマンドでNetView SSIをを再起動してN64JをACTIVATEの状態に戻すことが可能です。

S N64JSSIコマンドで再起動した後に、DISPLAYコマンドでNetView SSIが立ち上がったことが確認できました。

終わりに
ここまでお読みいただきありがとうございました。他のPARMLIBメンバーの記事についてもぜひご覧ください。
PARMLIBメンバー記事indexページはこちら