JCL サブミッション

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

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

  • SYSZJOBD:ジョブのディスパッチ (範囲は常に SERVERS/GLOBAL)
  • SYSZJOBN:ジョブ名 (範囲は常に SERVERS/GLOBAL)
  • SYSZDSN:データセット (範囲は RNLs SERVERS/GLOBAL または SERVER/LOCAL によって定義される)
エンタープライズ サーバー クライアントでの JCL サブミッションの流れ
CAS マネージャーでは次が実行されます。
  1. JCL をサブミットするとき、要求が casspool ファイルに書き込まれます。この casspool はすべてのエンタープライズ サーバー クラスターのメンバーに共通です。
  2. 定期的に機能する 1 つ以上のイニシエータがある個々のエンタープライズ サーバー クラスター クライアントは、ジョブ マネージャーを呼び出して特定クラスまたは複数クラスのセットのイニシエータに対して機能させます。
  3. JES は CAS マネージャーをコールバックし、この JOBNAME の SYSZJOBD で ENQ が既にあるかを確認します。SYSZJOBD の ENQ は常にグローバルなので、GLM にシッピングされます。
  4. GLM は、この JOBNAME の ENQ が既に存在しているかを確認し、クライアントに適切な戻りコードで応答します。
  5. エンタープライズ サーバー クラスター クライアントの 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 に送信され、すべてのリソースがローカルでロックされます。これは、エンタープライズ サーバー クラスター クライアントごとにローカルなロックのコピー、および、さらに重要な点として、グローバルなロックのコピーがあることを意味します。
  7. ジョブの最後に、JES は以前 ENQueue されたすべての SYSZDSN の DEQ を要求します。
  8. Global グローバルな DEQ が GLM にシッピングされ、すべての SYSZDSN はローカルで DEQueued されます。
  9. ジョブの最後に、SYSZJOBN JOBNAME が DEQueue されます。

注: casbat は、GLM から返信が戻って来るまで応答待ちのステータスにあります。