Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引


4.3.1 キュータイプ

アプリケーションで使用するために,TP1/Message Queueがサポートするキュータイプを次に示します。

ローカルキューとリモートキュー

アプリケーションの接続するキューマネジャによってキューが保持される場合は,アプリケーションにとってはローカルキューです。異なるキューマネジャによってキューが保持される場合には,リモートキューです。両者の大きな違いは,ユーザがメッセージを取り出せるのはローカルキューからだけであるということです。メッセージの登録は両者に対して実行できます。

ローカルキューを定義するときに作成されたキュー定義オブジェクトは,キューに登録された物理メッセージと同様に,キューの定義情報を保持します。リモートキューを定義するときに作成されたキュー定義オブジェクトは,ユーザがメッセージを送信したいキューをローカルキューマネジャが検出するのに必要な情報を保持します。リモートキューのすべての属性は,そのキューを保持するキューマネジャによって保持されます。そのキューマネジャにとってローカルキューだからです。

別名キュー

アプリケーションにとって別名キューはキューのように見えますが,実際にはほかのキューにアクセスするために使用できるオブジェクトです。したがって,複数のアプリケーションが異なる名前を使ってアクセスしながら,同じキューに対しての処理ができます。

モデルキューと動的キュー

モデルキューはキュー定義のひな形であり,動的ローカルキューを作成したいときにだけ使用します。この場合,MQAサービス定義ファイルでモデルキューを定義してください。

ひな形として属性を使用したいモデルキューの名前を指定して,アプリケーションから動的にローカルキューを作成できます。その後,必要に応じて,新しいキューの属性を変更できます。ただし,定義タイプは変更できません。

例えば,永続キューが必要なときは,永続キューとして定義タイプが設定されたモデルキューを選択しなければなりません。会話型アプリケーションでは照会に対する応答を動的キューで保持することがあります。応答を処理したあとではキューを保持する必要がないからです。

クラスタキュー

クラスタキューはクラスタキューマネジャによって保持されるキューであり,クラスタ内のキューマネジャから利用できます。

クラスタキューマネジャはmqamkqueコマンドにクラスタ名を指定したキューを使用できます。クラスタ名を指定すると,クラスタ内の他キューマネジャにキューの存在が通知されます。クラスタ内にある他キューマネジャは,対応するローカルキューのリモート定義がなくても,クラスタキューにメッセージを登録できます。クラスタキューは一つ以上のクラスタに通知されます。クラスタの詳細については,マニュアル「TP1/Message Queue 使用の手引」を参照してください。