![[z/OS]](ngzos.gif)
共用キューとキュー共用グループ
共用キューおよびキュー共用グループを使用して、 IBM® MQ リソースの高可用性を実装することができます。 共用キューおよびキュー共用グループは、 z/OS プラットフォーム上の IBM MQ for z/OS® に固有の機能です。
このセクションでは特徴と利点を説明し、いくつかのキュー・マネージャーが、同じキューおよびそれらのキュー上のメッセージをどのように共用するかについて示します。
共用キューとは
共用キューとは、一種のローカル・キューです。 そのキューにあるメッセージは、 シスプレックス内の複数のキュー・マネージャーがアクセスできます。
同じ共用キュー群にアクセスできるキュー・マネージャーは、キュー共用グループ というグループを形成します。
共用キューには、キュー共用グループ内の任意のキュー・マネージャーがアクセスできます。 つまり、あるキュー・マネージャーで共用キューにメッセージを書き込み、 別のキュー・マネージャーでそのキューから同じメッセージを取り出せます。 これにより、キュー共用グループ内での通信が迅速に行えるため、 キュー・マネージャー間のチャネルを活動状態にする必要はなくなります。
IBM MQ は、 Db2® または共有メッセージ・データ・セット (SMDS) へのメッセージのオフロードをサポートします。 任意のサイズのメッセージのオフロードが構成可能です。
図 1 は、キュー共有グループを形成する 3 つのキュー・マネージャーと 1 つのカップリング・ファシリティーを示しています。 3 つのキュー・マネージャーはすべてカップリング・ファシリティーの共用キューにアクセスできます。
アプリケーションは、キュー共用グループ内にある任意のキュー・マネージャーへ接続できます。 キュー共用グループ内のすべてのキュー・マネージャーがどの共用キューにもアクセスできるため、アプリケーションは特定のキュー・マネージャーの可用性に依存しません。 キュー共用グループ内のどのキュー・マネージャーも、キューの操作が可能です。

共用キュー定義は、 Db2 データベース表 OBJ_B_QUEUE に保管されます。 そのため、キューは一度定義するだけで十分で、その後はキュー共用グループ のすべてのキュー・マネージャーでアクセスすることができます。 つまり、作成しなければならない定義はほとんどないことになります。
対照的に,非共有キューの定義は,キューを所有するキューマネージャのページセット0に格納されます(ページセットで説明されています)。
同じ名前のキューが、キュー・マネージャー定義のページ・セット で定義されている場合、共用キューを定義することはできません。 同様に、同じ名前の共用キューが存在している場合にも、キュー・マネージャー のページ・セットにローカル・バージョンのキューを定義できません。
キュー共用グループとは
同じ共用キューへアクセスできるキュー・マネージャーのグループは、 キュー共用グループと呼ばれます。 キュー共用グループの各メンバーには、同じ共用キューのセットに対するアクセス権があります。
キュー共用グループには、最大 4 文字の名前があります。 この名前はネットワーク内で固有であり、かつ、キュー・マネージャー名とは異なるものである必要があります。
図 2 に、2 つのキュー・マネージャーを含むキュー共有グループを示します。 各キュー・マネージャーには、1 つのチャネル・イニシエーターと、 そのローカル・ページ・セットおよびログ・データ・セットがあります。
キュー共有グループの各メンバーは、 Db2 システムにも接続する必要があります。 キュー・マネージャーが共有オブジェクト定義を保持するために使用される Db2 共有リポジトリーにアクセスできるように、 Db2 システムはすべて同じ Db2 データ共有グループ内になければなりません。 これらは、一度しか定義されないすべてのタイプの IBM MQ オブジェクト (例えば、キューやチャネル) の定義であり、グループ内のすべてのキュー・マネージャーがそれらを使用できます。 これらは グローバル 定義と呼ばれ、 専用定義とグローバル定義で説明されています。

キュー・マネージャーをキュー共用グループへ結合すると、そ のキュー・マネージャーを使用して、そのグループに定義され ている共用オブジェクトへアクセスしたり、グループ内で新し い共用オブジェクトを定義できるようになります。 グループ内で共用キューを定義すると、このキュー・マネージャーで、 そのような共用キューに対するメッセージの読み書きができます。 グループ内のキュー・マネージャーはいずれも、共用キューに保持されているメッセージを取り出すことができます。
MQSC コマンドを一度入力すれば、 各キュー・マネージャーで個々にコマンドを入力しなくても、 キュー共用グループ内のすべてのキュー・マネージャーでそのコマンドを実行できます。 このときに、コマンド有効範囲 属性が使用されます。 この属性については、 異なるキュー・マネージャーへのコマンドの送信で説明しています。
キュー・マネージャーがキュー共有グループのメンバーとして実行される場合、そのキュー・マネージャー専用に定義された IBM MQ オブジェクトと、キュー共有グループ内のすべてのキュー・マネージャーで使用可能なグローバルに定義された IBM MQ オブジェクトを区別できる必要があります。 このときに、キュー共用グループ後処理 属性 が使用されます。 この属性については、 プライベート定義とグローバル定義で説明しています。
グループ内の任意の場所にある IBM MQ オブジェクトへのアクセスを制御する単一のセキュリティー・プロファイル・セットを定義できます。 これにより、定義しなければならないプロファイルの数が著しく減少します。
1 つのキュー・マネージャーは、1 つのキュー共用グループにだけ属することができ、 またグループ内のすべてのキュー・マネージャーは同じシスプレックス内になければなりません。 始動時のシステム・パラメーターには、キュー・マネージャーが属するキュー共用グループを指定します。