2.5.3 メッセージとキューの関係
Reliable Messagingのキューは,種類によって格納できるメッセージインタフェースが異なります。また,キュー作成時の指定値によってメッセージの管理方法が異なります。
(1) メッセージインタフェースとキューの種類
使用するメッセージインタフェースによって,そのメッセージを格納できるキューの種類は異なります。
メッセージインタフェースと格納できるキューの種類を次の表に示します。
項番 |
インタフェース |
格納できるキューの種類 |
---|---|---|
1 |
Message |
ローカルキュー 転送キュー |
2 |
BytesMessage |
ローカルキュー 転送キュー 送信用共用キュー(ただし,ペイロードだけ) 受信用共用キュー(ただし,ペイロードだけ) |
3 |
ObjectMessage |
ローカルキュー※ 転送キュー |
4 |
TextMessage |
ローカルキュー 転送キュー |
(2) キュー作成時の指定値とメッセージのヘッダ
キューの作成は,永続版リソースアダプタの場合と非永続版リソースアダプタの場合とで作成方法が異なります。
-
永続版リソースアダプタの場合
hrmmkqueコマンドによって作成されます。
-
非永続版リソースアダプタの場合
キュー定義文(定義の先頭にhrmmkqueを記述)を指定して,キュー作成ファイルを作成します。キュー作成ファイルに指定されたキュー定義文を基に,Reliable Messaging開始時にローカルキューが作成されます。
作成時の指定値によって,そのキューに格納されるメッセージの管理方法は異なります。
特に,次に示すオプション指定値はメッセージのヘッダに影響します。
-
キューの永続性(永続版リソースアダプタの場合,-mオプション指定値)
送信されたメッセージが永続キュー属性のキューに登録されるとき,そのメッセージは永続メッセージになります。アプリケーションが永続メッセージを受信するとき,メッセージのJMSDeliveryModeヘッダはDeliveryMode.PERSISTENTに設定されています。
送信されたメッセージが非永続キュー属性のキューに登録されるとき,そのメッセージは非永続メッセージになります。アプリケーションが非永続メッセージを受信するとき,メッセージのJMSDeliveryModeヘッダはDeliveryMode.NON_PERSISTENTに設定されています。
なお,非永続版リソースアダプタの場合は,非永続メッセージしか扱いません。そのため,作成されるキューは非永続キュー属性のキューだけになります。
永続メッセージと非永続メッセージが,各属性のキューでどのように管理されるかについては,「2.3.1 キューの永続性」を参照してください。
-
メッセージの有効期間(-eオプション指定値)
送信されたメッセージがキューに登録されるとき,メッセージの有効期間が秒単位で設定されます。アプリケーションがメッセージを受信するとき,メッセージのJMSExpirationヘッダに有効期間が設定されています。
有効期間が指定されたメッセージが,どのように管理されるかについては,「2.3.5 メッセージの有効期間」を参照してください。