2.1.2 メッセージキューイングの基本構成要素
メッセージキューイングの基本構成要素はメッセージとキューです。
- 〈この項の構成〉
(1) メッセージの概要
メッセージはアプリケーションにとって意味のあるバイト文字列です。メッセージはアプリケーション間または同じアプリケーション内の異なる部分の間で情報を転送するために使用されます。アプリケーションは同じOS上または異なるOS上で動作します。
メッセージは次に示す二つの部分で構成されます。
-
アプリケーションデータ
アプリケーションデータの内容と構造は,それを使用するアプリケーションによって定義されます。
-
メッセージ記述子
メッセージ記述子はメッセージを識別するとともに追加の制御情報を含みます。例えば,メッセージタイプや送信側アプリケーションによって割り当てられた優先度などを含みます。
メッセージ記述子の形式はIBM MQによって規定されます。詳細については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
(2) キューの概要
キューはメッセージを保存するために使用されるデータ構造体です。
各キューはキューマネジャに属します。キューマネジャは所属するキューを管理し,受信したメッセージを適切なキューへ保存します。メッセージは通常操作の一部として,アプリケーションプログラムやキューマネジャによってキューに登録されます。
キューマネジャが管理するキューの種類について,次の表に示します。
キューの種類 |
説明 |
作成方法 |
使用方法 |
---|---|---|---|
ローカルキュー |
アプリケーションがMQCONN命令を利用して接続するキューマネジャに属しているキューです。 |
次に示す2とおりの作成方法があります。
|
あて先キュー イニシエーションキュー 応答キュー デッドレターキュー 転送キュー ベースキュー |
リモートキュー (リモートキューのローカル定義による) |
アプリケーションがMQCONN命令を利用して接続するキューマネジャとは別のキューマネジャに属しているキューです。 |
リモートキューのローカル定義で指定します。また,特に定義はなく,アプリケーションで指定する場合もあります。 |
あて先キュー 応答キュー ベースキュー |
別名キュー |
ローカルキューまたはリモートキューのローカル定義の別名です。 |
別名キューの属性定義で指定します。 |
別名キュー |
モデルキュー |
運用中に作成するキューの基になる属性を持つキューです。 |
モデルキューの属性定義で指定します。 |
モデルキュー |
(3) キューの説明
TP1/Message Queueのキューの構造について,次の図に示します。
|
(a) キューの使用方法による分類
キューの使用方法およびそのキューがローカルキューかリモートキューになるかについて,次の表に示します。表の項番は,図2-1の括弧の数字に対応します。
項番 |
使用方法 |
意味 |
ローカルキュー |
リモートキュー |
---|---|---|---|---|
1 |
イニシエーションキュー |
トリガメッセージを登録するキュー |
○ |
× |
2 |
応答キュー |
アプリケーションが応答メッセージを受け取るキュー |
○ |
○ |
3 |
転送キュー |
特定のリモートキューマネジャにメッセージを転送するキュー |
○ |
× |
4 |
デッドレターキュー |
障害などでキューに登録できなかったメッセージを登録するキュー |
○ |
× |
5 |
あて先キュー |
メッセージのあて先になるキュー |
○ |
○ |
6 |
モデルキュー |
属性が一時的動的キュー,永続的動的キューの基になるキュー |
− |
− |
7 |
ベースキュー |
別名キューの基になるキュー |
○ |
○ |
8 |
別名キュー |
キューに付けられた別名だけのキュー |
− |
− |
- (凡例)
-
○:該当キューになります。
×:該当キューになりません。
−:実体のないキューのため該当しません。
(b) ローカルキューの作成方法による分類
ローカルキューには,2とおりの作成方法があります。作成方法によって定義済みキューと動的キューに分けられます。
- 定義済みキュー
-
mqamkqueコマンドで作成します。作成方法については,「2.2.2(2) キューの作成と削除」を参照してください。
- 動的キュー
-
アプリケーションからMQOPEN命令で作成します。定義タイプ(DefinitionType属性)によって永続的動的キューと一時的動的キューに分けられます。永続的動的キューは,キューマネジャの障害発生時に回復されます。一時的動的キューは,キューマネジャの障害発生時に回復されません。
(4) キューの属性
キューには,属性と呼ばれる特性があります。キューの属性には,キュー名,キュータイプ,取り出し許可などがあります。属性については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
キューの属性の決定・変更方法を次に示します。
-
次に示すMQAサービス定義の定義コマンドで指定します。
-
mqaqueatl定義コマンド(モデルキューの属性定義)
-
mqaremque定義コマンド(リモートキューのローカル定義)
-
mqaalsque定義コマンド(別名キューの属性定義)
-
-
一度指定した属性をMQSET命令で変更できます。ただし,変更できる属性と変更できない属性があります。MQSET命令については,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
-
直接設定はできませんが,キューマネジャの動作に応じて値が変動する属性もあります。例えば,キューのメッセージ登録数などです。