エンタープライズ・サーバは、アセンブラ・マクロ 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 から返信が戻って来るまで
応答待ちのステータスにあります。