[z/OS]

共用キューとキュー共用グループ

共用キューおよびキュー共用グループを使用して、 IBM® MQ リソースの高可用性を実装することができます。 共用キューおよびキュー共用グループは、 z/OS プラットフォーム上の IBM MQ for z/OS® に固有の機能です。

このセクションでは特徴と利点を説明し、いくつかのキュー・マネージャーが、同じキューおよびそれらのキュー上のメッセージをどのように共用するかについて示します。

共用キューとは

共用キューとは、一種のローカル・キューです。 そのキューにあるメッセージは、 シスプレックス内の複数のキュー・マネージャーがアクセスできます。

キュー共用グループ

同じ共用キュー群にアクセスできるキュー・マネージャーは、キュー共用グループ というグループを形成します。

任意のキュー・マネージャーがメッセージにアクセスできる

共用キューには、キュー共用グループ内の任意のキュー・マネージャーがアクセスできます。 つまり、あるキュー・マネージャーで共用キューにメッセージを書き込み、 別のキュー・マネージャーでそのキューから同じメッセージを取り出せます。 これにより、キュー共用グループ内での通信が迅速に行えるため、 キュー・マネージャー間のチャネルを活動状態にする必要はなくなります。

IBM MQ は、 Db2® または共有メッセージ・データ・セット (SMDS) へのメッセージのオフロードをサポートします。 任意のサイズのメッセージのオフロードが構成可能です。

図 1 は、キュー共有グループを形成する 3 つのキュー・マネージャーと 1 つのカップリング・ファシリティーを示しています。 3 つのキュー・マネージャーはすべてカップリング・ファシリティーの共用キューにアクセスできます。

アプリケーションは、キュー共用グループ内にある任意のキュー・マネージャーへ接続できます。 キュー共用グループ内のすべてのキュー・マネージャーがどの共用キューにもアクセスできるため、アプリケーションは特定のキュー・マネージャーの可用性に依存しません。 キュー共用グループ内のどのキュー・マネージャーも、キューの操作が可能です。

キュー・マネージャーのうちの 1 つに問題が生じても、 キュー共用グループ内の他のキュー・マネージャーはすべてキューの処理を続行できるため、非常に可用性が高くなります。
図1: キュー共用グループ
キュー共有グループを形成するためにリンクされた 3 つのキュー・マネージャーと 1 つのカップリング・ファシリティーを示す図。

すべてのキュー・マネージャーによって共用されるキュー定義

共用キュー定義は、 Db2 データベース表 OBJ_B_QUEUE に保管されます。 そのため、キューは一度定義するだけで十分で、その後はキュー共用グループ のすべてのキュー・マネージャーでアクセスすることができます。 つまり、作成しなければならない定義はほとんどないことになります。

対照的に,非共有キューの定義は,キューを所有するキューマネージャのページセット0に格納されます(ページセットで説明されています)。

同じ名前のキューが、キュー・マネージャー定義のページ・セット で定義されている場合、共用キューを定義することはできません。 同様に、同じ名前の共用キューが存在している場合にも、キュー・マネージャー のページ・セットにローカル・バージョンのキューを定義できません。

キュー共用グループとは

同じ共用キューへアクセスできるキュー・マネージャーのグループは、 キュー共用グループと呼ばれます。 キュー共用グループの各メンバーには、同じ共用キューのセットに対するアクセス権があります。

キュー共用グループには、最大 4 文字の名前があります。 この名前はネットワーク内で固有であり、かつ、キュー・マネージャー名とは異なるものである必要があります。

図 2 に、2 つのキュー・マネージャーを含むキュー共有グループを示します。 各キュー・マネージャーには、1 つのチャネル・イニシエーターと、 そのローカル・ページ・セットおよびログ・データ・セットがあります。

キュー共有グループの各メンバーは、 Db2 システムにも接続する必要があります。 キュー・マネージャーが共有オブジェクト定義を保持するために使用される Db2 共有リポジトリーにアクセスできるように、 Db2 システムはすべて同じ Db2 データ共有グループ内になければなりません。 これらは、一度しか定義されないすべてのタイプの IBM MQ オブジェクト (例えば、キューやチャネル) の定義であり、グループ内のすべてのキュー・マネージャーがそれらを使用できます。 これらは グローバル 定義と呼ばれ、 専用定義とグローバル定義で説明されています。

複数のキュー共用グループが 1 つの特定データ共用グループを参照することが可能です。 Db2 サブシステムの名前、およびキュー・マネージャーが始動時に IBM MQ システム・パラメーターで使用するデータ共有グループを指定します。
図2: キュー共用グループにあるキュー・マネージャーのコンポーネント
キュー共有グループ内のキュー・マネージャーと、それらのキュー・マネージャーが使用するカップリング・ファシリティーおよび Db2 データベースとの間の接続を示す図。 この図は、各キュー・マネージャーに独自のページ・セットとログ・データ・セットのセットがあることも示しています。

キュー・マネージャーをキュー共用グループへ結合すると、そ のキュー・マネージャーを使用して、そのグループに定義され ている共用オブジェクトへアクセスしたり、グループ内で新し い共用オブジェクトを定義できるようになります。 グループ内で共用キューを定義すると、このキュー・マネージャーで、 そのような共用キューに対するメッセージの読み書きができます。 グループ内のキュー・マネージャーはいずれも、共用キューに保持されているメッセージを取り出すことができます。

MQSC コマンドを一度入力すれば、 各キュー・マネージャーで個々にコマンドを入力しなくても、 キュー共用グループ内のすべてのキュー・マネージャーでそのコマンドを実行できます。 このときに、コマンド有効範囲 属性が使用されます。 この属性については、 異なるキュー・マネージャーへのコマンドの送信で説明しています。

キュー・マネージャーがキュー共有グループのメンバーとして実行される場合、そのキュー・マネージャー専用に定義された IBM MQ オブジェクトと、キュー共有グループ内のすべてのキュー・マネージャーで使用可能なグローバルに定義された IBM MQ オブジェクトを区別できる必要があります。 このときに、キュー共用グループ後処理 属性 が使用されます。 この属性については、 プライベート定義とグローバル定義で説明しています。

グループ内の任意の場所にある IBM MQ オブジェクトへのアクセスを制御する単一のセキュリティー・プロファイル・セットを定義できます。 これにより、定義しなければならないプロファイルの数が著しく減少します。

1 つのキュー・マネージャーは、1 つのキュー共用グループにだけ属することができ、 またグループ内のすべてのキュー・マネージャーは同じシスプレックス内になければなりません。 始動時のシステム・パラメーターには、キュー・マネージャーが属するキュー共用グループを指定します。