2 WebLogic JMS
の基礎次の表は、 メ ッ セージ ヘッ ダのフ ィ ール ド を説明し、 各フ ィ ール ド で値がどの よ う に定義さ れる のかを示し てい ます。
表2-8 メ ッ セージヘ ッ ダフ ィ ール ド
フ ィ ールド 説明 ど こで定義さ
れるか JMSCorrelationID
WebLogic
JMSMessageID(
こ の表内で 後述)
、 アプ リ ケーシ ョ ン固有の文字列、 ま たはbyte[]配列のいずれかを指 定する 。JMSCorrelationIDは メ ッ セージ を相互に関連
さ せる ために使用す る。
こ のフ ィ ール ド には
2
つの一般的な用途があ る 。 最初の用途は、 次の よ う な要求 と 応答の方式を設定 し てメ ッ セージ を リ ン ク する こ と 。
1.
メ ッ セージ を送信す る と き に、 アプ リ ケーシ ョ ンでは その メ ッ セージに割 り 当て ら れたJMSMessageID値を 格納す る。2.
その メ ッ セージ を受信し たアプ リ ケーシ ョ ンでは、 送 信側アプ リ ケーシ ョ ンに送 り 返す応答 メ ッ セージの JMSCorrelationIDフ ィ ール ド にJMSMessageIDを コ ピーする 。2
番目の用途は、 選択 し た文字列をJMSCorrelationID フ ィ ール ド に格納し 、 一連の メ ッ セージ を アプ リ ケーシ ョ ン指定の値でリ ン ク でき る よ う にする こ と 。すべてのJMSMessageIDはID:と い う プレ フ ィ ッ ク ス で 始ま る 。他のアプ リ ケーシ ョ ン固有の文字列で
JMSCorrelationIDを使用する 場合は、 文字列の先頭に プ レ フ ィ ク スID:が付いてはな ら ない。
アプ リ ケー シ ョ ン
Message
JMSDeliveryMode PERSISTENTま たはNON_PERSISTENTを指定する 。 永続 メ ッ セージが送信 さ れた場合、その メ ッ セージは
JMS
フ ァ イ ルま たはJDBC
データ ベース に格納 さ れ る。send()処理は、 メ ッ セージの配信を保証でき る まで成功 と は判断 さ れない。 永続 メ ッ セージは少な く と も
1
回は確 実に配信 さ れ る。非永続 メ ッ セージは
JMS
データ ベース に格納 さ れない。こ のモー ド では、 処理のオーバーヘ ッ ド が最小限に抑え ら れ る 。 メ ッ セージは最低
1
回は配信が保証 さ れ る が、 シ ス テ ム障害が発生す る と 失われ る 場合があ る。 接続を閉 じ る か回復す る と 、 確認応答 さ れていないすべての非永続 メ ッ セージが再配信 さ れ る 。 非永続 メ ッ セージは確認応答 さ れ る と 再配信 さ れない。メ ッ セージが送信 さ れ る と き には、 こ の値は無視 さ れ る。
メ ッ セージが受信 さ れ る と き には、 送信側の メ ソ ッ ド で 指 定 さ れた配信モー ド が格納 さ れてい る。
send() メ ソ ッ ド
JMSDeliveryTime
メ ッ セージ を コ ン シ ュ ーマに配信でき る 最 も 早い絶対時間 を定義す る。 こ の フ ィ ール ド は、 送 り 先で の メ ッ セージの ソ ー ト 、 ま たは メ ッ セージの選択に使用で き る。デー タ型 変換の目的で、JMSDeliveryTimeは長整数 と し て保存 さ れ る 。send() メ ソ ッ ド
JMSDestination メ ッ セージが配信 さ れ る送 り 先
(
キ ューま たは ト ピ ッ ク)
を指定す る。 こ の フ ィ ール ド の値は、 メ ッ セージの送信時 にアプ リ ケーシ ョ ンの メ ッ セージプ ロデ ューサで設定 さ れ る 。メ ッ セージが送信 さ れ る と き には、 こ の値は無視 さ れ る。
メ ッ セージが受信 さ れ る と き、 その送 り 先の値は送信時に 割 り 当て ら れた値 と 同 じ で なければな ら ない。
send() メ ソ ッ ド
表2-8 メ ッ セージヘ ッ ダ フ ィ ールド (続き)
フ ィ ールド 説明 ど こ で定義さ
れるか
2 WebLogic JMS
の基礎JMSExpiration メ ッ セージの有効期限
(
存続時間値)
を指定する 。 JMSExpirationの値は、 アプ リ ケーシ ョ ンの存続時間 と その時点のGMT
の合計 と し て算出 さ れ る。 アプ リ ケー シ ョ ンで存続時間が0
と し て指定 さ れ る と 、JMSExpirationは
0
に設定 さ れ、 メ ッ セージは無期限に な る。期限の切れた メ ッ セージは、 誤っ て配信 さ れない よ う にシ ス テ ムか ら 削除 さ れ る。
send() メ ソ ッ ド
JMSMessageID
JMS
プ ロ バ イ ダに よ っ て送信 さ れ る各 メ ッ セージ をユニー ク に識別す る文字列値を格納する 。すべてのJMSMessageIDはID:と い う プレ フ ィ ッ ク ス で 始ま る 。
メ ッ セージが送信 さ れ る と き には、 こ の値は無視 さ れ る 。 メ ッ セージが受信 さ れ る と き には、 プ ロ バ イ ダの割 り 当て た値が格納 さ れてい る。
send() メ ソ ッ ド
JMSPriority 優先順位の レベルを指定する 。 こ のフ ィ ール ド は メ ッ セー ジが送信 さ れ る 前に設定 さ れ る。
JMS
では、0
~9
の10
段階で優先順位が定義 さ れてい る(0
が最低の優先順位)
。 レベル0
~4
は通常の範囲に属 し、レベル
5
~9
は至急の範囲に属する 。メ ッ セージが受信 さ れ る と き には、 メ ッ セージ を送信す る メ ソ ッ ド で 指定 さ れた値が格納 さ れてい る 。
送 り 先キーを コ ン フ ィ グ レーシ ョ ンすれば、 優先順位を基 準に送 り 先を ソ ー ト する こ と ができ る 。 詳細については、
『管理者ガ イ ド 』 の 「
JMS
の管理」 を参照。send() メ ソ ッ ド
表2-8 メ ッ セージヘ ッ ダフ ィ ール ド (続き)
フ ィ ールド 説明 ど こで定義さ
れるか
Message
JMSRedelivered 確認応答がないため メ ッ セージが再配信 さ れ る と き に設定 さ れ る フ ラ グ を指定す る。 こ の フ ラ グは受信側アプ リ ケー シ ョ ンのみに関係があ る。
フ ラ グが設定 さ れてい る場合は、 以下のいずれかの理由の ために、 同じ メ ッ セージが以前に配信 さ れてい る 可能性が あ る 。
アプ リ ケーシ ョ ンでは既に メ ッ セージが受信 さ れてい る が、 確認応答が行われていない。
セ ッ シ ョ ンのrecover() メ ソ ッ ド が呼び出 さ れて、
最後に確認応答 さ れた メ ッ セージの後か ら セ ッ シ ョ ン が再開 さ れた。recover()メ ソ ッ ド の詳細について は、
4-35
ページの 「受信 メ ッ セージの回復」 を参照。WebLogic JMS
JMSReplyTo 応答 メ ッ セージが送信 さ れ る キ ューま たは ト ピ ッ ク を指定 する 。 こ のフ ィ ール ド は メ ッ セージの送信前に送信側アプ
リ ケーシ ョ ンで 設定 さ れ る 。
こ の機能はJMSCorrelationIDヘ ッ ダフ ィ ール ド と 共に 使用 し て要求 と 応答の メ ッ セージ を連係 さ せ る こ と ができ る。
JMSReplyToフ ィ ール ド をただ設定する だけでは応答は保 証 さ れない。 受信側アプ リ ケーシ ョ ンに応答 さ せ る には、
その よ う に選択す る必要があ る 。
JMSReplyToは
NULL
に設定す る こ と も で き る。 それは、受信側アプ リ ケーシ ョ ンに と っ て通知 イベン ト な どの意味 を持つ場合があ る 。
アプ リ ケー シ ョ ン
JMSTimestamp メ ッ セージが送信 さ れた と き の時刻を格納す る。 タ イ ム ス タ ンプは、 アプ リ ケーシ ョ ンでメ ッ セージが送信 さ れた と き で はな く 、
WebLogic JMS
で配信用に メ ッ セージが受け 付け ら れた と き に メ ッ セージに書き 込まれ る 。メ ッ セージが受信 さ れ る と き には、 タ イ ム ス タ ンプが格納 さ れてい る。
こ の フ ィ ール ド には、
Java
の ミ リ 時間の値が格納 さ れ る 。WebLogic JMS
表2-8 メ ッ セージヘ ッ ダ フ ィ ールド (続き)フ ィ ールド 説明 ど こ で定義さ
れるか
2 WebLogic JMS
の基礎メ ッ セージ プロパテ ィ フ ィ ール ド
メ ッ セージのプ ロパテ ィ フ ィ ール ド には、 送信側アプ リ ケーシ ョ ンに よ っ て追 加 さ れたヘッ ダ フ ィ ール ド が格納されます。 プ ロパテ ィ は、 標準的な Java の名 前 と 値の組み合わせです。 プ ロパテ ィ 名は、javax.jms.Message
Javadoc
で定義されてい る メ ッ セージ セ レ ク タの構文仕様に準拠し ていなければな り ません。 有 効な値は、 boolean、 byte、 double、 float、 int、 long、 および String です。
メ ッ セージ プロパテ ィ フ ィ ール ド は、 アプ リ ケーシ ョ ン固有の目的に使用でき ますが、 それら は基本的には メ ッ セージ セレ ク タ で使用する ために用意されて います。 メ ッ セージ セレ ク タの詳細については、
4-71
ページの 「 メ ッ セージの フ ィ ルタ処理」 を参照し て く だ さい。メ ッ セージ プロパテ ィ フ ィ ール ド の設定については、
4-62
ページの 「 メ ッ セー ジ ヘ ッ ダ フ ィ ール ドおよび メ ッ セージ プ ロパテ ィ フ ィ ール ド の設定 と 参照」 ま たは javax.jms.MessageJavadoc
を参照し て く だ さい。JMSType 送信側アプ リ ケーシ ョ ンで設定 さ れた メ ッ セージ タ イ プ 識別子
(String)
を示す。JMS
仕様では、 多様なJMS
プ ロ バ イ ダに適応す る ため、こ のフ ィ ール ド に若干の柔軟性を持たせてい る 。 一部の メ ッ セージ ン グシ ス テ ムでは、 アプ リ ケーシ ョ ン固有の メ ッ セージ タ イ プを使用で き る。 その よ う なシ ス テ ムの 場合、JMSTypeフ ィ ール ド は、 格納 さ れてい る 型定義に ア ク セ スす る ための メ ッ セージタ イ プ
ID
を保持す る ため に使用で き る。WebLogic JMS
では、 こ の フ ィ ール ド の使用に制限を設け ていない。アプ リ ケー シ ョ ン 表2-8 メ ッ セージヘ ッ ダフ ィ ール ド (続き)
フ ィ ールド 説明 ど こで定義さ
れるか
Message
メ ッ セージ本文
メ ッ セージ本文は、 プ ロデューサか ら コ ンシ ューマに配信 さ れる内容です。
次の表は、 JMS で定義 されている メ ッ セージ タ イ プを説明し ています。 すべて の メ ッ セージ タ イ プは、 メ ッ セージ ヘ ッ ダ と メ ッ セージ プロパテ ィ ( メ ッ セー ジ本文はな し ) で構成される javax.jms.Message
を拡張し ます。
詳細については、javax.jms.Message
Javadoc
を参照し て く だ さい。 特定の メ ッ セージ タ イ プのア ク セ ス メ ソ ッ ドや変換表については、 その メ ッ セージ タ イ プ の Javadoc を参照し て く だ さい。表2-9 JMS メ ッ セージ タ イプ
タ イ プ 説明
javax.jms.BytesMessage
未解釈バ イ ト の ス ト リ ーム。 セン ダ と レ シーバに よ っ て理解 さ れ なければな ら ない。 こ の メ ッ セージ タ イ プのア ク セ ス メ ソ ッ ド は、java.io.DataInputStreamお よび
java.io.DataOutputStreamに基づ く ス ト リ ーム対応の リ ーダ と ラ イ タ 。