JCL サブミッション

Enterprise Server は、アセンブラー マクロ ENQ および DEQ と同等の機能を使用します。これらのマクロにはエンキュー メカニズムがあり、クラスター内の指定された Enterprise Server クラスター クライアントのセット全体で名前付きリソースへのアクセスを直列化できます。名前付きリソースは、その QNAME (主要リソース名)、RNAME (副リソース名) および SCOPE (1 つ以上のサーバー) によって定義されます。

Enterprise Server クラスターのコンテキストでは、グローバル ENQは 3 つのキュー名でのみ作成されます。

  • SYSZJOBD:ジョブのディスパッチ (範囲は常に SERVERS/GLOBAL)
  • SYSZJOBN:ジョブ名 (範囲は常に SERVERS/GLOBAL)
  • SYSZDSN:データセット (範囲は RNLs SERVERS/GLOBAL または SERVER/LOCAL によって定義される)
Enterprise Server クライアントでの JCL サブミッションの流れ
CAS マネージャーでの処理
  1. JCL をサブミットする際、要求が casspool ファイルに書き込まれます。この casspool はすべての Enterprise Server クラスターのメンバーに共通です。
  2. 定期的に機能する 1 つ以上のイニシエーターがある個々の Enterprise Server クラスター クライアントは、ジョブ マネージャーを呼び出して特定クラスまたは複数クラスのセットのイニシエーターに対して機能させます。
  3. JES は CAS マネージャーをコールバックし、この JOBNAME の SYSZJOBD で ENQ がすでにあるかどうかを確認します。SYSZJOBD の ENQ は常にグローバルであるため、GLM にシッピングされます。
  4. GLM は、この JOBNAME の ENQ がすでに存在しているかどうかを確認し、クライアントに適切な戻りコードで応答します。
  5. Enterprise Server クラスター クライアントの CAS マネージャーは、JOB マネージャーに GLM 応答を返します。
  6. 戻りコードが実行を許可する場合、バッチ イニシエーターがディスパッチされ JCL を実行します。
バッチ イニシエーターでの処理
  1. ジョブ イニシエーターでジョブが開始します。
  2. JOB マネージャーは SYSZJOBN JOBNAME で ENQ を要求します。SYSZJOBN ENQ 要求は常にグローバルであるため、GLM に送られます。
  3. JES は SYSZJOBD JOBNAME で DEQ を要求します。DEQ はグローバルであるため、要求は GLM に送られます。
  4. JES はすべての SYSZDSN リソースのロックを要求します。
  5. RNL を使用して、リソースの範囲がSERVER/LOCAL か SERVERS/GLOBAL かを判断します。
  6. リソースの範囲がグローバルな場合、SYSZDSN 要求は GLM に送信され、すべてのリソースがローカルでロックされます。これは、Enterprise Server クラスター クライアントごとにローカルなロックのコピーがあること、さらに重要な点として、グローバルなロックのコピーがあることを意味します。
  7. ジョブの最後に、JES は以前に ENQueue (エンキュー) されたすべての SYSZDSN の DEQ を要求します。
  8. グローバルな DEQ が GLM にシッピングされ、すべての SYSZDSN はローカルで DEQueue (デキュー) されます。
  9. ジョブの最後に、SYSZJOBN JOBNAME が DEQueue (デキュー) されます。

注: casbat は、GLM から応答が返されるまで応答待ちのステータスになります。