エンタープライズ サーバーは、アセンブラー マクロ ENQ および DEQ と同等の機能を使用します。これらのマクロにはエンキュー メカニズムがあり、クラスター内の指定されたエンタープライズ サーバー クラスター クライアントのセット全体で名前付きリソースへのアクセスを直列化できます。名前付きリソースは、その QNAME (主要リソース名)、RNAME (副リソース名) および SCOPE (1 つ以上の サーバー) によって定義されます。
エンタープライズ サーバー クラスターのコンテキストでは、グローバル ENQは 3 つのキュー名でのみ作成されます。
- SYSZJOBD:ジョブのディスパッチ (範囲は常に SERVERS/GLOBAL)
- SYSZJOBN:ジョブ名 (範囲は常に SERVERS/GLOBAL)
- SYSZDSN:データセット (範囲は RNLs SERVERS/GLOBAL または SERVER/LOCAL によって定義される)
- エンタープライズ サーバー クライアントでの JCL サブミッションの流れ
- CAS マネージャーでは次が実行されます。
- JCL をサブミットするとき、要求が casspool ファイルに書き込まれます。この casspool はすべてのエンタープライズ サーバー クラスターのメンバーに共通です。
- 定期的に機能する 1 つ以上のイニシエータがある個々のエンタープライズ サーバー クラスター クライアントは、ジョブ マネージャーを呼び出して特定クラスまたは複数クラスのセットのイニシエータに対して機能させます。
- JES は CAS マネージャーをコールバックし、この JOBNAME の SYSZJOBD で ENQ がすでにあるかを確認します。SYSZJOBD の ENQ は常にグローバルなので、GLM にシッピングされます。
- GLM は、この JOBNAME の ENQ がすでに存在しているかを確認し、クライアントに適切な戻りコードで応答します。
- エンタープライズ サーバー クラスター クライアントの CAS マネージャーは、JOB マネージャーに GLM 応答を返します。
- 戻りコードが実行を許可する場合、バッチ イニシエータがディスパッチされ JCL を実行します。
- バッチ イニシエータでは次が実行されます。
- ジョブ イニシエータでジョブが開始します。
- JOB マネージャーは SYSZJOBN JOBNAME で ENQ を要求します。SYSZJOBN ENQ 要求は常にグローバルなので、GLM に送られます。
- JES は SYSZJOBD JOBNAME で DEQ を要求します。DEQ はグローバルなので、要求は GLM に送られます。
- JES はすべての SYSZDSN リソースのロックを要求します。
- RNL を使用してリソースの範囲、SERVER/LOCAL または SERVERS/GLOBAL を判断します。
- リソースの範囲がグローバルな場合、SYSZDSN 要求は GLM に送信され、すべてのリソースがローカルでロックされます。これは、エンタープライズ サーバー クラスター クライアントごとにローカルなロックのコピー、および、さらに重要な点として、グローバルなロックのコピーがあることを意味します。
- ジョブの最後に、JES は以前 ENQueue されたすべての SYSZDSN の DEQ を要求します。
- Global グローバルな DEQ が GLM にシッピングされ、すべての SYSZDSN はローカルで DEQueued されます。
- ジョブの最後に、SYSZJOBN JOBNAME が DEQueue されます。
注: casbat は、GLM から返信が戻って来るまで
応答待ちのステータスにあります。