当シリーズを始めた経緯や、検証環境の情報についてはこちらのindexページをご覧ください。
MSTJCLxxとは
MSTJCLxxとは、マスター・スケジューラー(Master Scheduler)を起動するためのJCLで、「マスター・スケジューラー自身が使用するJCL」だと考えると分かりやすいです。マスター・スケジューラーは z/OS起動直後に立ち上がり、その後のシステム全体のタスク管理の起点となる非常に重要な存在です。
指定方法
マスターJCLxxは、次の2か所に置くことができます。
-
SYS1.PARMLIBのMSTJCLxxメンバー(推奨)
-
SYS1.LINKLIBのMSTJCLxxモジュール
PARMLIBのMSTJCLxxである場合、通常のJCLと同じ感覚で編集でき、アセンブルやリンクエディットが不要です。運用・保守のしやすさから、現在はこちらが一般的です。どのMSTJCLxxを使用するかは、以下のようにIEASYSxx中で指定します。指定されたMSTJCLxxがIPL時に使用されます。
MSTRJCL=(xx)
ロードモジュールの中に指定される場合、変更のたびにアセンブルした上、 リンクエディットして配置が必要あります。面倒な部分もあるので現在の運用ではほとんど使用されません。
IPL時に、次の順でマスターJCLを探します。
-
SYS1.PARMLIBのMSTJCLxx
-
見つからなければSYS1.LINKLIBのMSTJCLxxモジュール
そのため、PARMLIBにMSTJCLxxがあれば必ずそちらが使用されます。
想定される注意点 / 考慮点
MSTJCLxxはPARMLIBメンバーですが、 他のPARMLIBと同じ感覚で扱ってはいけない特別な存在です。ここでは、自分が勉強した時思った初心者が特につまずきやすいポイントを中心に整理しました。
- 動的変更が不可
MSTJCLxxは IPL 時にのみ読み込まれますので、編集しても実行中のシステムには影響しないです。 - 普通のJCLと同じ書き方はできない
MSTJCLxxはJCLですが、制約が非常に多いです。EXECステップは1つだけであり、EXEC PROC、IF/THEN、INCLUDE、JCLLIBは使用できません。また、&SYSUIDシンボルも使えません。 - MSTJCLxxはPARMLIBだが中身はJCL
システム・シンボルは使用可能です。ただしPARMLIBと同じ展開ルールではありません。 - IEFPARM の優先順位に注意が必要
IEFPARMを指定しても、LOADxxにPARMLIB指定がある場合はLOADxxが優先です。
実機検証
静的変更(IPL)
本環境で、MSTJCL01を指定しました。

MSTJCL01の中身は以下のようです。

MSTJCL01を指定してIPLを実行しました。
IEE252I MEMBER MSTJCL01 FOUND IN ...
IEFJ200I MASTER SCHEDULER JCL FOR THIS IPL TAKEN FROM MEMBER MSTJCL01 FOR PARMLIB
IEE252I
このメッセージは、システム初期設定中で、メンバーがPARMLIBデータ・セットで検出されたときにでてきます。
[「MVS システム・メッセージ」IEA メッセージ IEA252I ]https://www.ibm.com/docs/ja/zos/2.5.0?topic=iee399i-iee252i)
IEFJ200I
このメッセージは、どのMSTJCLxxを使用してIPLを行ったかを示します。
「MVS システム・メッセージ」IEFJ メッセージ IEFJ200I
動的変更
MSTJCLxxは動的変更ができません。
終わりに
ここまでお読みいただきありがとうございました。他のPARMLIBメンバーの記事についてもぜひご覧ください。
PARMLIBメンバー記事indexページはこちら