• 検索結果がありません。

Message

ドキュメント内 jms.book (ページ 43-50)

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.Message

Javadoc

を参照し て く だ さい。

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に基づ く ス ト リ ーム対応の リ ーダ と ラ イ タ 。

javax.jms.MapMessage

名前が文字列であ り 、 値が

Java

プ リ ミ テ ィ ブ型であ る、 複数の名 前 と 値の組み合わせ。 名前 と 値の組み合わせは、 名前を指定す る こ と に よ って順次的に も ラ ン ダムに も 読み込む こ と がで き る。

javax.jms.ObjectMessage 1

つのシ リ ア ラ イ ズ可能な

Java

オブジ ェ ク ト 。

javax.jms.StreamMessage Java

プ リ ミ テ ィ ブ型だけが ス ト リ ームで読み書き さ れ る こ と 以外 は、

BytesMessage

と 同 じ。

javax.jms.TextMessage 1

つの

String

TextMessage

では

XML

コ ン テ ン ツ も 格納で き る。

weblogic.jms.extensions.XMLM essage

XML

コ ン テ ン ツ。

XMLMessage

タ イ プを使用する と 、

TextMessage

で送信 さ れ る

XML

コ ンテ ン ツ では処理し に く い メ ッ セージの フ ィ ル タ 処理を容易に行 う こ と がで き る 。

ドキュメント内 jms.book (ページ 43-50)

関連したドキュメント