インターフェース Message
- すべての既知のサブインターフェース:
BytesMessage
、MapMessage
、ObjectMessage
、StreamMessage
、TextMessage
public interface Message
Message
インターフェースは、すべての Jakarta Messaging メッセージのルートインターフェースです。すべてのメッセージに使用されるメッセージヘッダーとacknowledge
メソッドを定義します。ほとんどのメッセージ指向ミドルウェア(MOM)製品は、メッセージをヘッダーと本文で構成される軽量エンティティとして扱います。ヘッダーには、メッセージのルーティングと識別に使用されるフィールドが含まれています。本文には、送信されるアプリケーションデータが含まれます。
この一般的な形式では、メッセージの定義は製品によって大きく異なります。Jakarta Messaging API がこれらすべてのメッセージモデルをサポートするのは非常に困難です。
これを念頭に置いて、Jakarta Messaging メッセージモデルには次のゴールがあります。
- 単一の統合メッセージ API を提供する
- プロバイダー固有のメッセージングアプリケーションで使用される形式に一致するメッセージを作成するのに適した API を提供する
- オペレーティングシステム、マシンアーキテクチャ、コンピューター言語にまたがる異種アプリケーションの開発をサポートする
- Java プログラミング言語のオブジェクトを含むサポートメッセージ (「Java オブジェクト」)
- Extensible Markup Language(XML)ページを含むサポートメッセージ
Jakarta Messaging メッセージは、次の部分で構成されています。
- ヘッダー - すべてのメッセージが同じヘッダーフィールドのセットをサポートします。ヘッダーフィールドには、クライアントとプロバイダーの両方がメッセージの識別とルーティングに使用する値が含まれています。
- プロパティ - 各メッセージには、アプリケーション定義のプロパティ値をサポートするための組み込み機能が含まれています。プロパティは、アプリケーション定義のメッセージフィルタリングをサポートするための効率的なメカニズムを提供します。
- 本文 - Jakarta Messaging API はいくつかの型のメッセージ本文を定義し、現在使用されているメッセージングスタイルの大部分をカバーしています。
メッセージ本文
Jakarta Messaging API は 5 種類のメッセージ本文を定義します。
- ストリーム -
StreamMessage
オブジェクトのメッセージ本文には、Java プログラミング言語のプリミティブ値のストリーム(「Java プリミティブ」)が含まれています。順番に入力され、読み込まれます。 - マップ -
MapMessage
オブジェクトのメッセージ本文には、名前と値のペアのセットが含まれます。ここで、名前はString
オブジェクトであり、値は Java プリミティブです。エントリには、名前で順次またはランダムにアクセスできます。エントリの順序は定義されていません。 - テキスト -
TextMessage
オブジェクトのメッセージ本文にはjava.lang.String
オブジェクトが含まれます。このメッセージ型は、プレーンテキストメッセージおよび XML メッセージの転送に使用できます。 - オブジェクト -
ObjectMessage
オブジェクトのメッセージ本文には、Serializable
Java オブジェクトが含まれています。 - バイト -
BytesMessage
オブジェクトのメッセージ本文には、解釈されないバイトのストリームが含まれます。このメッセージ型は、既存のメッセージフォーマットと一致するように本文を文字通りにエンコードするためのものです。多くの場合、より使いやすい他のボディ型の 1 つを使用することが可能です。Jakarta Messaging API ではバイトメッセージでメッセージプロパティを使用できますが、プロパティを含めると形式に影響する可能性があるため、通常は使用されません。
メッセージヘッダー
JMSCorrelationID
ヘッダーフィールドは、1 つのメッセージを別のメッセージにリンクするために使用されます。通常は、応答メッセージとリクエストメッセージをリンクします。JMSCorrelationID
は、プロバイダー固有のメッセージ ID、アプリケーション固有のString
オブジェクト、またはプロバイダー固有のbyte[]
値を保持できます。メッセージプロパティ
Message
オブジェクトには、アプリケーション定義のプロパティ値をサポートするための組み込み機能が含まれています。実際、これはアプリケーション固有のヘッダーフィールドをメッセージに追加するメカニズムを提供します。プロパティを使用すると、アプリケーションはメッセージセレクターを介して、アプリケーション固有の条件を使用して、Jakarta Messaging プロバイダーに代わりにメッセージを選択またはフィルタリングさせることができます。
プロパティ名は、メッセージセレクタ識別子の規則に従う必要があります。プロパティ名は null であってはならず、空の文字列であってはなりません。プロパティ名が設定されていて、それが null または空の文字列の場合、
IllegalArgumentException
をスローする必要があります。プロパティ値は
boolean
、byte
、short
、int
、long
、float
、double
、String
にすることができます。プロパティ値は、メッセージを送信する前に設定されます。クライアントがメッセージを受信すると、そのプロパティは読み取り専用モードになります。この時点でクライアントがプロパティを設定しようとすると、
MessageNotWriteableException
がスローされます。clearProperties
を呼び出すと、プロパティの読み取りと書き込みの両方ができるようになります。ヘッダーフィールドはプロパティとは異なることに注意してください。ヘッダーフィールドが読み取り専用モードになることはありません。プロパティ値は、メッセージの本文の値と重複する場合と重複しない場合があります。Jakarta Messaging ではプロパティを作成する必要があるかどうかについてポリシーを定義していませんが、アプリケーション開発者は、Jakarta Messaging プロバイダーがメッセージの本文のデータをメッセージのプロパティのデータよりも効率的に処理する可能性があることに注意する必要があります。最高のパフォーマンスを得るには、アプリケーションでメッセージのヘッダーをカスタマイズする必要がある場合にのみ、メッセージプロパティを使用する必要があります。これを行う主な理由は、カスタマイズされたメッセージ選択をサポートするためです。
メッセージプロパティは、次の変換テーブルをサポートしています。マークされたケースはサポートされている必要があります。マークされていないケースは
JMSException
をスローする必要があります。プリミティブのvalueOf
メソッドがプリミティブの有効な表現としてString
を受け入れない場合、String
-to-primitive 変換はランタイム例外をスローする可能性があります。行型として書き込まれた値は、列型として読み取ることができます。
| | boolean byte short int long float double String |---------------------------------------------------------- |boolean | X X |byte | X X X X X |short | X X X X |int | X X X |long | X X |float | X X X |double | X X |String | X X X X X X X X |----------------------------------------------------------
プロパティの型固有の set/get メソッドに加えて、Jakarta Messaging は
setObjectProperty
メソッドとgetObjectProperty
メソッドを提供します。これらは、オブジェクト化されたプリミティブ値を使用して、同じプロパティ型のセットをサポートします。それらの目的は、プロパティ型の決定が、コンパイル時ではなく実行時に行われるようにすることです。それらは同じプロパティ値の変換をサポートします。setObjectProperty
メソッドは、クラスBoolean
、Byte
、Short
、Integer
、Long
、Float
、Double
、String
の値を受け入れます。他のクラスを使用しようとすると、JMSException
をスローする必要があります。getObjectProperty
メソッドは、クラスBoolean
、Byte
、Short
、Integer
、Long
、Float
、Double
、String
の値のみを返します。プロパティ値の順序は定義されていません。メッセージのプロパティ値を反復処理するには、
getPropertyNames
を使用してプロパティ名の列挙を取得してから、さまざまなプロパティ get メソッドを使用してそれらの値を取得します。メッセージのプロパティは、
clearProperties
メソッドによって削除されます。これにより、メッセージに空のプロパティセットが残ります。設定されていない名前のプロパティ値を取得すると、null 値が返されます。
getStringProperty
およびgetObjectProperty
メソッドのみが NULL 値を返すことができます。null 値をプリミティブ型として読み取ろうとすると、プリミティブの対応するvalueOf(String)
変換メソッドを null 値で呼び出すものとして扱う必要があります。Jakarta Messaging API は、Jakarta Messaging で定義されたプロパティ用に
JMSX
プロパティ名プレフィックスを予約します。これらのプロパティの完全なセットは、Jakarta Messaging 仕様で定義されています。この仕様では、各プロパティのサポートが必須かオプションかも定義されています。新しい Jakarta Messaging 定義のプロパティは、Jakarta Messaging API の新しいバージョンで追加される可能性があります。String[] ConnectionMetaData.getJMSXPropertyNames
メソッドは、接続でサポートされている JMSX プロパティの名前を返します。JMSX プロパティは、接続でサポートされているかどうかに関係なく、メッセージセレクタで参照できます。それらがメッセージに存在しない場合、他の存在しないプロパティと同様に扱われます。受信時にプロバイダーによって設定されたプロパティにメッセージセレクターを設定した場合の影響は定義されていません。
仕様で「送信時にプロバイダーによって設定される」と定義されている JMSX プロパティは、メッセージのプロデューサーとコンシューマーの両方で使用できます。仕様で「受信時にプロバイダーによって設定される」と定義されている JMSX プロパティは、コンシューマーのみが使用できます。
JMSXGroupID
およびJMSXGroupSeq
は、クライアントがメッセージをグループ化する場合に使用する必要がある標準プロパティです。すべてのプロバイダーがサポートする必要があります。特に明記されていない限り、JMSX プロパティの値とセマンティクスは定義されていません。Jakarta Messaging API は、プロバイダー固有のプロパティ用に
JMS_vendor_name
プロパティ名プレフィックスを予約します。各プロバイダーは、vendor_name
の独自の値を定義します。これは、Jakarta Messaging プロバイダーがその特別なメッセージごとのサービスを Jakarta Messaging クライアントで利用できるようにするために使用するメカニズムです。プロバイダー固有のプロパティの目的は、Jakarta Messaging クライアントをプロバイダーネイティブクライアントと単一の Jakarta Messaging アプリケーションに統合するために必要な特別な機能を提供することです。Jakarta Messaging クライアント間のメッセージングには使用しないでください。
Jakarta Messaging Message Interfaces のプロバイダー実装
Jakarta Messaging API は、Jakarta Messaging メッセージモデルを定義する一連のメッセージインターフェースを提供します。これらのインターフェースの実装は提供していません。
各 Jakarta Messaging プロバイダーは、メッセージのインスタンスを作成するための
Session
オブジェクトを一連のメッセージファクトリに提供します。これにより、プロバイダーは特定のニーズに合わせたメッセージ実装を使用できます。プロバイダーは、独自のものではないメッセージの実装を受け入れる準備をする必要があります。それらは、それ自体の実装ほど効率的に処理されない場合があります。ただし、それらは処理する必要があります。
プロバイダーが外部メッセージの実装を処理している場合は、次の例外ケースに注意してください。外部メッセージ実装に、外部宛先実装に設定された
JMSReplyTo
ヘッダーフィールドが含まれている場合、プロバイダーはこのヘッダーフィールドの値を処理または保持する必要はありません。メッセージセレクター
Jakarta Messaging メッセージセレクターを使用すると、クライアントは、ヘッダーフィールド参照とプロパティ参照によって、関心のあるメッセージを指定できます。ヘッダーとプロパティ値がセレクターと一致するメッセージのみが配信されます。メッセージが配信されないことの意味は、使用されている
MessageConsumer
によって異なります(QueueReceiver
およびTopicSubscriber
を参照)。メッセージセレクタは、メッセージ本文の値を参照できません。
メッセージのヘッダーフィールド値とプロパティ値がセレクター内の対応する識別子に置き換えられたときにセレクターが true と評価された場合、メッセージセレクターはメッセージと一致します。
メッセージセレクターは
String
であり、その構文は SQL92 条件式構文のサブセットに基づいています。メッセージセレクターの値が空の文字列の場合、値は null として扱われ、メッセージコンシューマーのメッセージセレクターがないことを示します。メッセージセレクターの評価の順序は、優先レベル内で左から右です。括弧を使用して、この順序を変更できます。
事前定義されたセレクターリテラルと演算子名は、ここでは大文字で示されています。ただし、大文字と小文字は区別されません。
セレクターには次のものを含めることができます。
- リテラル:
- 文字列リテラルは一重引用符で囲まれ、一重引用符は二重一重引用符で表されます。たとえば、
'literal'
と'literal''s'
です。Java プログラミング言語の文字列リテラルと同様に、これらは Unicode 文字エンコーディングを使用します。 - 正確な数値リテラルは、
57
、-957
、+62
などの小数点のない数値です。long
の範囲の数値がサポートされています。正確な数値リテラルは、Java プログラミング言語の整数リテラル構文を使用します。 - 近似数値リテラルは、
7E3
や-57.9E2
などの科学的記数法の数値、または7.
、-95.7
、+6.2
などの 10 進数の数値です。double
の範囲の番号がサポートされています。近似リテラルは、Java プログラミング言語の浮動小数点リテラル構文を使用します。 - ブールリテラル
TRUE
およびFALSE
。
- 文字列リテラルは一重引用符で囲まれ、一重引用符は二重一重引用符で表されます。たとえば、
- 識別子:
- 識別子は文字と数字の無制限の長さのシーケンスであり、最初の文字は文字でなければなりません。文字は、メソッド
Character.isJavaLetter
が true を返す任意の文字です。これには、'_'
および'$'
が含まれます。文字または数字は、Character.isJavaLetterOrDigit
メソッドが true を返す任意の文字です。 - 識別子を
NULL
、TRUE
、FALSE
という名前にすることはできません。 - 識別子を
NOT
、AND
、OR
、BETWEEN
、LIKE
、IN
、IS
またはESCAPE
にすることはできません。 - 識別子は、ヘッダーフィールド参照またはプロパティ参照のいずれかです。メッセージセレクタのプロパティ値の型は、プロパティの設定に使用される型に対応しています。メッセージに存在しないプロパティが参照されている場合、その値は
NULL
です。 - プロパティがメッセージセレクタ式で使用されている場合、プロパティの get メソッドに適用される変換は適用されません。例: 次のように、プロパティを文字列値として設定するとします。
myMessage.setStringProperty("NumberOfOrders", "2");
文字列は算術式で使用できないため、メッセージセレクターの次の式は false と評価されます。"NumberOfOrders > 1"
- 識別子では大文字と小文字が区別されます。
- メッセージヘッダーフィールドの参照は
JMSDeliveryMode
、JMSPriority
、JMSMessageID
、JMSTimestamp
、JMSCorrelationID
、JMSType
に制限されています。JMSMessageID
、JMSCorrelationID
、JMSType
値は null の場合があり、null の場合はNULL
値として扱われます。 'JMSX'
で始まる名前は、Jakarta Messaging で定義されたプロパティ名です。'JMS_'
で始まる名前は、プロバイダー固有のプロパティ名です。'JMS'
で始まらない名前は、アプリケーション固有のプロパティ名です。
- 識別子は文字と数字の無制限の長さのシーケンスであり、最初の文字は文字でなければなりません。文字は、メソッド
- 空白は、Java プログラミング言語で定義されているものと同じです。スペース、水平タブ、フォームフィード、行末記号です。
- 式:
- セレクターは条件式です。
true
の一致を評価するセレクター。false
または不明と評価されるセレクターが一致しません。 - 算術式は、それ自体、算術演算、識別子(値は数値リテラルとして扱われます)、数値リテラルで構成されます。
- 条件式は、それ自体、比較演算、論理演算で構成されます。
- セレクターは条件式です。
- 式の評価を順序付けるための標準ブラケット
()
がサポートされています。 - 優先順位の論理演算子:
NOT
、AND
、OR
- 比較演算子:
=
、>
、>=
、<
、<=
、<>
(次の値に等しくない)- 同様の型の値のみを比較できます。1 つの例外は、正確な数値と概算の数値を比較することが有効であることです。必要な型変換は、Java プログラミング言語の数値昇格の規則によって定義されます。似ていない型の値の比較が試みられた場合、操作の値は false です。いずれかの型値が
NULL
と評価された場合、式の値は不明です。 - 文字列とブール値の比較は、
=
と<>
に制限されています。2 つの文字列は、同じ文字シーケンスが含まれている場合にのみ等しくなります。
- 同様の型の値のみを比較できます。1 つの例外は、正確な数値と概算の数値を比較することが有効であることです。必要な型変換は、Java プログラミング言語の数値昇格の規則によって定義されます。似ていない型の値の比較が試みられた場合、操作の値は false です。いずれかの型値が
- 優先順位の算術演算子:
+
,-
(単項)*
,/
(乗算と除算)+
,-
(加減)- 算術演算では、Java プログラミング言語の数値昇格を使用する必要があります。
arithmetic-expr1 [NOT] BETWEEN arithmetic-expr2 AND arithmetic-expr3
(比較演算子)"age BETWEEN 15 AND 19"
は"age >= 15 AND age <= 19"
と同等です"age NOT BETWEEN 15 AND 19"
は"age < 15 OR age > 19"
と同等です
identifier [NOT] IN (string-literal1, string-literal2,...)
(identifier
にString
またはNULL
値がある比較演算子)"Country IN (' UK', 'US', 'France')"
は'UK'
の場合は true、'Peru'
の場合は false です。これは、式"(Country = ' UK') OR (Country = ' US') OR (Country = ' France')"
と同等です。"Country NOT IN (' UK', 'US', 'France')"
は、'UK'
の場合は false、'Peru'
の場合は true です。これは、式"NOT ((Country = ' UK') OR (Country = ' US') OR (Country = ' France'))"
と同等です。IN
またはNOT IN
操作の ID がNULL
の場合、操作の値は不明です。
identifier [NOT] LIKE pattern-value [ESCAPE escape-character]
(比較演算子。identifier
にはString
値があります。pattern-value
は文字列リテラルであり、'_'
は任意の 1 文字を表します。'%'
は、空のシーケンスを含む、文字の任意のシーケンスを表します。そして他のすべてのキャラクターは自分自身を表しています。オプションのescape-character
は、pattern-value
の'_'
および'%'
の特別な意味をエスケープするためにその文字が使用される 1 文字の文字列リテラルです。)"phone LIKE '12%3'"
は、'123'
または'12993'
の場合は true、'1234'
の場合は false です。"word LIKE 'l_se'"
は'lose'
の場合は true、'loose'
の場合は false です。"underscored LIKE '\_%' ESCAPE '\'"
は'_foo'
の場合は true、'bar'
の場合は false です。"phone NOT LIKE '12%3'"
は、'123'
または'12993'
の場合は偽であり、'1234'
の場合は真です。LIKE
またはNOT LIKE
操作のidentifier
がNULL
の場合、操作の値は不明です。
identifier IS NULL
(null ヘッダーフィールド値または欠落しているプロパティ値をテストする比較演算子)"prop_name IS NULL"
identifier IS NOT NULL
(null 以外のヘッダーフィールド値またはプロパティ値の存在をテストする比較演算子)"prop_name IS NOT NULL"
Jakarta Messaging プロバイダーは、メッセージセレクターが表示されるときに、その構文が正しいことを確認する必要があります。構文的に正しくないセレクターを提供するメソッドは、
JMSException
になる必要があります。Jakarta Messaging プロバイダーは、セレクターが提示されたときに、オプションでセマンティックチェックを提供することもできます。プロパティ型が不明なため、メッセージセレクタが表示されたときにすべてのセマンティックチェックを実行できるわけではありません。次のメッセージセレクターは、メッセージ型が車で、色が青で、重量が 2500 ポンドを超えるメッセージを選択します。
"JMSType = 'car' AND color = 'blue' AND weight > 2500"
null 値
上記のように、プロパティ値は
NULL
の場合があります。NULL
値を含むセレクター式の評価は、SQL92NULL
セマンティクスによって定義されます。これらのセマンティクスの簡単な説明をここに示します。SQL は
NULL
値を不明として扱います。未知の値との比較または算術は、常に未知の値を生成します。IS NULL
およびIS NOT NULL
演算子は、不明な値をそれぞれのTRUE
およびFALSE
値に変換します。ブール演算子は、次の表で定義されている 3 値論理を使用します。
AND
演算子の定義| AND | T | F | U +------+-------+-------+------- | T | T | F | U | F | F | F | F | U | U | F | U +------+-------+-------+-------
OR
演算子の定義| OR | T | F | U +------+-------+-------+-------- | T | T | T | T | F | T | F | U | U | T | U | U +------+-------+-------+-------
NOT
演算子の定義| NOT +------+------ | T | F | F | T | U | U +------+-------
特記事項
メッセージセレクターで使用される場合、
JMSDeliveryMode
ヘッダーフィールドは値'PERSISTENT'
および'NON_PERSISTENT'
を持つものとして扱われます。日付と時刻の値は、標準の
long
ミリ秒値を使用する必要があります。日付または時刻リテラルがメッセージセレクターに含まれている場合、ミリ秒値の整数リテラルである必要があります。ミリ秒値を生成する標準的な方法は、java.util.Calendar
を使用することです。SQL は固定 10 進比較と算術をサポートしていますが、Jakarta Messaging メッセージセレクターはサポートしていません。これが、正確な数値リテラルを小数のないものに制限する理由です(そして、近似数値の代替表現として小数のある数値を追加します)。
SQL コメントはサポートされていません。
- 導入:
- JMS 1.0
- バージョン:
- Jakarta Messaging 2.0
- 関連事項:
MessageConsumer.receive()
,MessageConsumer.receive(long)
,MessageConsumer.receiveNoWait()
,MessageListener.onMessage(Message)
,BytesMessage
,MapMessage
,ObjectMessage
,StreamMessage
,TextMessage
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static long
DEFAULT_DELIVERY_DELAY
メッセージプロデューサーのデフォルトの配信遅延はゼロです。static int
DEFAULT_DELIVERY_MODE
メッセージプロデューサーのデフォルトの配信モードはPERSISTENT
です。static int
DEFAULT_PRIORITY
メッセージプロデューサーのデフォルトの優先度は 4 です。static long
DEFAULT_TIME_TO_LIVE
メッセージプロデューサーのデフォルトの存続時間は無制限です。メッセージが期限切れになることはありません。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 void
acknowledge()
この消費されたメッセージのセッションのすべての消費されたメッセージを確認します。void
clearBody()
メッセージ本文をクリアします。void
clearProperties()
メッセージのプロパティをクリアします。<T> T
getBody(ClassSE<T> c)
指定された型のオブジェクトとしてメッセージ本文を返します。boolean
getBooleanProperty(StringSE name)
指定された名前のboolean
プロパティの値を返します。byte
getByteProperty(StringSE name)
指定された名前のbyte
プロパティの値を返します。double
getDoubleProperty(StringSE name)
指定された名前のdouble
プロパティの値を返します。float
getFloatProperty(StringSE name)
指定された名前のfloat
プロパティの値を返します。int
getIntProperty(StringSE name)
指定された名前のint
プロパティの値を返します。StringSE
getJMSCorrelationID()
メッセージの相関 ID を取得します。byte[]
getJMSCorrelationIDAsBytes()
メッセージのバイト配列として相関 ID を取得します。int
getJMSDeliveryMode()
このメッセージに指定されたDeliveryMode
値を取得します。long
getJMSDeliveryTime()
メッセージの配信時間の値を取得します。Destination
getJMSDestination()
このメッセージのDestination
オブジェクトを取得します。long
getJMSExpiration()
メッセージの有効期限を取得します。StringSE
getJMSMessageID()
メッセージ ID を取得します。int
getJMSPriority()
メッセージの優先度を取得します。boolean
getJMSRedelivered()
このメッセージが再配信されているかどうかの指標を取得します。Destination
getJMSReplyTo()
このメッセージへの応答の送信先となるDestination
オブジェクトを取得します。long
getJMSTimestamp()
メッセージのタイムスタンプを取得します。StringSE
getJMSType()
メッセージの送信時にクライアントから提供されたメッセージ型識別子を取得します。long
getLongProperty(StringSE name)
指定された名前のlong
プロパティの値を返します。ObjectSE
getObjectProperty(StringSE name)
指定された名前の Java オブジェクトプロパティの値を返します。EnumerationSE
getPropertyNames()
すべてのプロパティ名のEnumeration
を返します。short
getShortProperty(StringSE name)
指定された名前のshort
プロパティの値を返します。StringSE
getStringProperty(StringSE name)
指定された名前のString
プロパティの値を返します。boolean
isBodyAssignableTo(ClassSE c)
メッセージ本文を指定された型に割り当てることができるかどうかを返します。boolean
propertyExists(StringSE name)
プロパティ値が存在するかどうかを示します。void
setBooleanProperty(StringSE name, boolean value)
指定された名前のboolean
プロパティ値をメッセージに設定します。void
setByteProperty(StringSE name, byte value)
指定された名前のbyte
プロパティ値をメッセージに設定します。void
setDoubleProperty(StringSE name, double value)
指定された名前のdouble
プロパティ値をメッセージに設定します。void
setFloatProperty(StringSE name, float value)
指定された名前のfloat
プロパティ値をメッセージに設定します。void
setIntProperty(StringSE name, int value)
指定された名前のint
プロパティ値をメッセージに設定します。void
setJMSCorrelationID(StringSE correlationID)
メッセージの相関 ID を設定します。void
setJMSCorrelationIDAsBytes(byte[] correlationID)
相関 ID をメッセージのバイト配列として設定します。void
setJMSDeliveryMode(int deliveryMode)
このメッセージのDeliveryMode
値を設定します。void
setJMSDeliveryTime(long deliveryTime)
メッセージの配信時間の値を設定します。void
setJMSDestination(Destination destination)
このメッセージのDestination
オブジェクトを設定します。void
setJMSExpiration(long expiration)
メッセージの有効期限値を設定します。void
setJMSMessageID(StringSE id)
メッセージ ID を設定します。void
setJMSPriority(int priority)
このメッセージの優先度を設定します。void
setJMSRedelivered(boolean redelivered)
このメッセージを再配信するかどうかを指定します。void
setJMSReplyTo(Destination replyTo)
このメッセージへの応答の送信先となるDestination
オブジェクトを設定します。void
setJMSTimestamp(long timestamp)
メッセージのタイムスタンプを設定します。void
setJMSType(StringSE type)
メッセージ型を設定します。void
setLongProperty(StringSE name, long value)
指定された名前のlong
プロパティ値をメッセージに設定します。void
setObjectProperty(StringSE name, ObjectSE value)
指定された名前の Java オブジェクトプロパティ値をメッセージに設定します。void
setShortProperty(StringSE name, short value)
指定された名前のshort
プロパティ値をメッセージに設定します。void
setStringProperty(StringSE name, StringSE value)
指定された名前のString
プロパティ値をメッセージに設定します。
フィールドの詳細
DEFAULT_DELIVERY_MODE
static final int DEFAULT_DELIVERY_MODE
メッセージプロデューサーのデフォルトの配信モードはPERSISTENT
です。
DEFAULT_PRIORITY
static final int DEFAULT_PRIORITY
メッセージプロデューサーのデフォルトの優先度は 4 です。- 関連事項:
- 定数フィールド値
DEFAULT_TIME_TO_LIVE
static final long DEFAULT_TIME_TO_LIVE
メッセージプロデューサーのデフォルトの存続時間は無制限です。メッセージが期限切れになることはありません。- 関連事項:
- 定数フィールド値
DEFAULT_DELIVERY_DELAY
static final long DEFAULT_DELIVERY_DELAY
メッセージプロデューサーのデフォルトの配信遅延はゼロです。- 導入:
- JMS 2.0
- 関連事項:
- 定数フィールド値
メソッドの詳細
getJMSMessageID
StringSE getJMSMessageID() throws JMSException
メッセージ ID を取得します。JMSMessageID
ヘッダーフィールドには、プロバイダーによって送信された各メッセージを一意に識別する値が含まれています。メッセージが送信されるとき、
JMSMessageID
は無視できます。send
またはpublish
メソッドが戻ると、プロバイダーによって割り当てられた値が含まれます。JMSMessageID
はString
値であり、履歴リポジトリ内のメッセージを識別するための一意のキーとして機能する必要があります。一意性の正確な範囲はプロバイダーによって定義されます。少なくとも、プロバイダーの特定のインストールに関するすべてのメッセージをカバーする必要があります。インストールは、接続されたメッセージルーターのセットです。すべての
JMSMessageID
値は、接頭辞'ID:'
で始まる必要があります。異なるプロバイダー間でのメッセージ ID 値の一意性は必要ありません。メッセージ ID はメッセージの作成とサイズの増加にいくらかの努力を要するため、一部の Jakarta Messaging プロバイダーは、メッセージ ID がアプリケーションによって使用されていないというヒントが与えられた場合、メッセージのオーバーヘッドを最適化できる場合があります。
MessageProducer.setDisableMessageID
メソッドを呼び出すことにより、Jakarta Messaging クライアントは、そのメッセージプロデューサーによって送信されるすべてのメッセージに対してこの潜在的な最適化を可能にします。Jakarta Messaging プロバイダーがこのヒントを受け入れる場合、これらのメッセージのメッセージ ID を null に設定する必要があります。プロバイダーがヒントを無視する場合は、メッセージ ID を通常の一意の値に設定する必要があります。- 戻り値:
- メッセージ ID
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージ ID を取得できない場合。- 関連事項:
setJMSMessageID(String)
,MessageProducer.setDisableMessageID(boolean)
setJMSMessageID
void setJMSMessageID(StringSE id) throws JMSException
メッセージ ID を設定します。このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用してメッセージ ID を構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。
- パラメーター:
id
- メッセージの ID- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージ ID の設定に失敗した場合。- 関連事項:
getJMSMessageID()
getJMSTimestamp
long getJMSTimestamp() throws JMSException
メッセージのタイムスタンプを取得します。JMSTimestamp
ヘッダーフィールドには、メッセージが送信されるプロバイダーに渡された時刻が含まれます。トランザクションまたは他のクライアント側のメッセージのキューイングのために実際の送信が後で発生する可能性があるため、メッセージが実際に送信された時刻ではありません。メッセージが送信されると、
JMSTimestamp
は無視されます。send
またはpublish
メソッドが戻ると、呼び出しと戻りの間のどこかに時間値が含まれます。この値は、Java プログラミング言語の通常のミリ時間値の形式です。タイムスタンプはメッセージのサイズを作成して増やすためにある程度の努力を要するため、一部の Jakarta Messaging プロバイダーは、タイムスタンプがアプリケーションによって使用されていないというヒントが与えられた場合、メッセージのオーバーヘッドを最適化できる場合があります。
MessageProducer.setDisableMessageTimestamp
メソッドを呼び出すことにより、Jakarta Messaging クライアントは、そのメッセージプロデューサーによって送信されるすべてのメッセージに対してこの潜在的な最適化を可能にします。Jakarta Messaging プロバイダーがこのヒントを受け入れる場合、これらのメッセージのタイムスタンプはゼロに設定する必要があります。プロバイダーがヒントを無視する場合は、タイムスタンプを通常の値に設定する必要があります。- 戻り値:
- メッセージのタイムスタンプ
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがタイムスタンプの取得に失敗した場合。- 関連事項:
setJMSTimestamp(long)
,MessageProducer.setDisableMessageTimestamp(boolean)
setJMSTimestamp
void setJMSTimestamp(long timestamp) throws JMSException
メッセージのタイムスタンプを設定します。このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用してメッセージのタイムスタンプを設定することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。
- パラメーター:
timestamp
- このメッセージのタイムスタンプ- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがタイムスタンプの設定に失敗した場合。- 関連事項:
getJMSTimestamp()
getJMSCorrelationIDAsBytes
byte[] getJMSCorrelationIDAsBytes() throws JMSException
メッセージのバイト配列として相関 ID を取得します。JMSCorrelationID
にbyte[]
値を使用することは移植できません。- 戻り値:
- バイトの配列としてのメッセージの相関 ID
- 例外:
JMSException
- Jakarta Messaging プロバイダーが何らかの内部エラーのために相関 ID を取得できない場合。- 関連事項:
setJMSCorrelationID(String)
,getJMSCorrelationID()
,setJMSCorrelationIDAsBytes(byte[])
setJMSCorrelationIDAsBytes
void setJMSCorrelationIDAsBytes(byte[] correlationID) throws JMSException
相関 ID をメッセージのバイト配列として設定します。配列はメソッドが戻る前にコピーされるため、配列を今後変更してもこのメッセージヘッダーは変更されません。
プロバイダーが相関 ID のネイティブの概念をサポートしている場合、Jakarta Messaging クライアントは、ネイティブメッセージングクライアントが期待する値と一致するように特定の
JMSCorrelationID
値を割り当てる必要がある場合があります。ネイティブ相関 ID 値のない Jakarta Messaging プロバイダーは、このメソッドとそれに対応する get メソッドをサポートする必要はありません。それらの実装はjava.lang.UnsupportedOperationException
をスローする可能性があります。JMSCorrelationID
にbyte[]
値を使用することは移植できません。- パラメーター:
correlationID
- バイトの配列としての相関 ID 値- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーが相関 ID の設定に失敗した場合。- 関連事項:
setJMSCorrelationID(String)
,getJMSCorrelationID()
,getJMSCorrelationIDAsBytes()
setJMSCorrelationID
void setJMSCorrelationID(StringSE correlationID) throws JMSException
メッセージの相関 ID を設定します。クライアントは、
JMSCorrelationID
ヘッダーフィールドを使用して、あるメッセージを別のメッセージにリンクできます。一般的な使用箇所は、レスポンスメッセージをそのリクエストメッセージにリンクすることです。JMSCorrelationID
は、次のいずれかを保持できます。- プロバイダー固有のメッセージ ID
- アプリケーション固有の
String
- プロバイダーネイティブの
byte[]
値
Jakarta Messaging プロバイダーによって送信される各メッセージにはメッセージ ID 値が割り当てられるため、メッセージ ID を介してメッセージをリンクすると便利です。すべてのメッセージ ID 値は、
'ID:'
プレフィックスで始まる必要があります。場合によっては、アプリケーション(複数のクライアントで構成されている)は、メッセージをリンクするためにアプリケーション固有の値を使用する必要があります。たとえば、アプリケーションは
JMSCorrelationID
を使用して、外部情報を参照する値を保持する場合があります。アプリケーション指定の値は、'ID:'
プレフィックスで始まってはなりません。これは、プロバイダーが生成したメッセージ ID 値用に予約されています。プロバイダーが相関 ID のネイティブの概念をサポートしている場合、Jakarta Messaging クライアントは、Jakarta Messaging API を使用しないクライアントが期待する値と一致するように、特定の
JMSCorrelationID
値を割り当てる必要がある場合があります。この目的のためにbyte[]
値が使用されます。ネイティブ相関 ID 値のない Jakarta Messaging プロバイダーは、byte[]
値をサポートする必要はありません。JMSCorrelationID
にbyte[]
値を使用することは移植できません。- パラメーター:
correlationID
- 参照されているメッセージのメッセージ ID- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーが相関 ID の設定に失敗した場合。- 関連事項:
getJMSCorrelationID()
,getJMSCorrelationIDAsBytes()
,setJMSCorrelationIDAsBytes(byte[])
getJMSCorrelationID
StringSE getJMSCorrelationID() throws JMSException
メッセージの相関 ID を取得します。このメソッドは、プロバイダー固有のメッセージ ID またはアプリケーション固有の
String
値のいずれかである相関 ID 値を返すために使用されます。- 戻り値:
String
としてのメッセージの相関 ID- 例外:
JMSException
- Jakarta Messaging プロバイダーが何らかの内部エラーのために相関 ID を取得できない場合。- 関連事項:
setJMSCorrelationID(String)
,getJMSCorrelationIDAsBytes()
,setJMSCorrelationIDAsBytes(byte[])
getJMSReplyTo
Destination getJMSReplyTo() throws JMSException
このメッセージへの応答の送信先となるDestination
オブジェクトを取得します。- 戻り値:
- このメッセージへのレスポンスの送信先となる
Destination
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがJMSReplyTo
宛先の取得に失敗した場合。- 関連事項:
setJMSReplyTo(Destination)
setJMSReplyTo
void setJMSReplyTo(Destination replyTo) throws JMSException
このメッセージへの応答の送信先となるDestination
オブジェクトを設定します。JMSReplyTo
ヘッダーフィールドには、現在のメッセージへの応答を送信する宛先が含まれています。null の場合、応答は期待されません。宛先は、Queue
オブジェクトまたはTopic
オブジェクトのいずれかです。null
JMSReplyTo
値で送信されたメッセージは、何らかのイベントの通知である場合もあれば、送信者が関心があると考えるデータである場合もあります。JMSReplyTo
値を持つメッセージは、通常、レスポンスを期待します。レスポンスはオプションです。決定するのはクライアント次第です。これらのメッセージはリクエストと呼ばれます。リクエストにレスポンスして送信されるメッセージは、レスポンスと呼ばれます。場合によっては、クライアントは、以前に送信したリクエストを、受信したばかりの応答と一致させたい場合があります。クライアントは、この目的で
JMSCorrelationID
ヘッダーフィールドを使用できます。- パラメーター:
replyTo
- このメッセージへのレスポンスの送信先となるDestination
- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがJMSReplyTo
宛先の設定に失敗した場合。- 関連事項:
getJMSReplyTo()
getJMSDestination
Destination getJMSDestination() throws JMSException
このメッセージのDestination
オブジェクトを取得します。JMSDestination
ヘッダーフィールドには、メッセージの送信先が含まれています。メッセージが送信されるとき、このフィールドは無視されます。
send
またはpublish
メソッドの完了後、フィールドはメソッドによって指定された宛先を保持します。メッセージを受信するとき、その
JMSDestination
値は、メッセージが送信されたときに割り当てられた値と同じである必要があります。- 戻り値:
- このメッセージの宛先
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが宛先を取得できない場合。- 関連事項:
setJMSDestination(Destination)
setJMSDestination
void setJMSDestination(Destination destination) throws JMSException
このメッセージのDestination
オブジェクトを設定します。このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用して、メッセージの宛先を構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。
- パラメーター:
destination
- このメッセージの宛先- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが宛先の設定に失敗した場合。- 関連事項:
getJMSDestination()
getJMSDeliveryMode
int getJMSDeliveryMode() throws JMSException
このメッセージに指定されたDeliveryMode
値を取得します。- 戻り値:
- このメッセージの配信モード
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが配信モードを取得できなかった場合- 関連事項:
setJMSDeliveryMode(int)
,DeliveryMode
setJMSDeliveryMode
void setJMSDeliveryMode(int deliveryMode) throws JMSException
このメッセージのDeliveryMode
値を設定します。このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用して、メッセージの配信モードを構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。
- パラメーター:
deliveryMode
- このメッセージの配信モード- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーが配信モードの設定に失敗した場合。- 関連事項:
getJMSDeliveryMode()
,DeliveryMode
getJMSRedelivered
boolean getJMSRedelivered() throws JMSException
このメッセージが再配信されているかどうかの指標を取得します。クライアントが
JMSRedelivered
フィールドが設定されたメッセージを受信した場合、このメッセージは以前に配信された可能性がありますが、その時点で受信が確認されていなかった可能性があります。- 戻り値:
- このメッセージが再配信されている場合は true
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが再配信状態を取得できない場合。- 関連事項:
setJMSRedelivered(boolean)
setJMSRedelivered
void setJMSRedelivered(boolean redelivered) throws JMSException
このメッセージを再配信するかどうかを指定します。このメソッドは、メッセージの配信時にこのフィールドを設定するためにのみ Jakarta Messaging プロバイダーが使用するためのものです。クライアントがこのメッセージを使用して、メッセージの再配信ステータスを構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。
- パラメーター:
redelivered
- このメッセージが再配信されているかどうかの表示- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが再配信状態の設定に失敗した場合。- 関連事項:
getJMSRedelivered()
getJMSType
StringSE getJMSType() throws JMSException
メッセージの送信時にクライアントから提供されたメッセージ型識別子を取得します。- 戻り値:
- メッセージ型
- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージ型の取得に失敗した場合。- 関連事項:
setJMSType(String)
setJMSType
void setJMSType(StringSE type) throws JMSException
メッセージ型を設定します。一部の Jakarta Messaging プロバイダーは、アプリケーションによって送信されるメッセージの定義を含むメッセージリポジトリを使用します。
JMSType
ヘッダーフィールドは、プロバイダーのリポジトリ内のメッセージの定義を参照する場合があります。Jakarta Messaging API は、標準のメッセージ定義リポジトリを定義しておらず、それに含まれる定義の命名ポリシーも定義していません。
一部のメッセージングシステムでは、各アプリケーションメッセージのメッセージ型定義を作成し、各メッセージでその型を指定する必要があります。このような Jakarta Messaging プロバイダーと連携するには、アプリケーションが
JMSType
を使用するかどうかに関係なく、Jakarta Messaging クライアントはJMSType
に値を割り当てる必要があります。これにより、フィールドを必要とするプロバイダーに対してフィールドが適切に設定されます。移植性を確保するために、Jakarta Messaging クライアントは、インストール時に現在のプロバイダーのメッセージリポジトリで定義されている値に構成できる
JMSType
のシンボリック値を使用する必要があります。文字列リテラルが使用されている場合、一部の Jakarta Messaging プロバイダーでは有効な型名ではない可能性があります。- パラメーター:
type
- メッセージ型- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージ型の設定に失敗した場合。- 関連事項:
getJMSType()
getJMSExpiration
long getJMSExpiration() throws JMSException
メッセージの有効期限を取得します。メッセージが送信されると、
JMSExpiration
ヘッダーフィールドは未割り当てのままになります。send
またはpublish
メソッドの完了後、メッセージの有効期限を保持します。これは、1970 年 1 月 1 日 UTC の有効期限と午前 0 時の差をミリ秒単位で測定したものです。存続可能時間がゼロとして指定されている場合、
JMSExpiration
はゼロに設定され、メッセージが期限切れにならないことを示します。メッセージの有効期限に達した場合、プロバイダーはメッセージを破棄する必要があります。Jakarta Messaging API は、メッセージの有効期限の通知の形式を定義していません。
クライアントは、期限切れのメッセージを受信しないでください。ただし、Jakarta Messaging API は、これが発生しないことを保証するものではありません。
- 戻り値:
- メッセージの有効期限の値
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの有効期限を取得できない場合。- 関連事項:
setJMSExpiration(long)
setJMSExpiration
void setJMSExpiration(long expiration) throws JMSException
メッセージの有効期限値を設定します。このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントは、このメソッドを使用してメッセージの有効期限を構成することはできません。このメソッドは public であり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。
- パラメーター:
expiration
- メッセージの有効期限- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの有効期限を設定できない場合。- 関連事項:
getJMSExpiration()
getJMSDeliveryTime
long getJMSDeliveryTime() throws JMSException
メッセージの配信時間の値を取得します。メッセージが送信されると、
JMSDeliveryTime
ヘッダーフィールドは未割り当てのままになります。send
またはpublish
メソッドの完了後、メッセージの配信時間を保持します。これは、1970 年 1 月 1 日 UTC の配達時間と深夜の間のミリ秒単位で測定された差です。メッセージの配信時間は、Jakarta Messaging プロバイダーがメッセージをコンシューマーに配信する可能性のある最も早い時間です。プロバイダーは、配信時間に達する前にメッセージを配信してはなりません。
- 戻り値:
- メッセージの配信時間の値
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが配信時間を取得できない場合。- 導入:
- JMS 2.0
- 関連事項:
setJMSDeliveryTime(long)
setJMSDeliveryTime
void setJMSDeliveryTime(long deliveryTime) throws JMSException
メッセージの配信時間の値を設定します。このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用して、メッセージの配信時間を設定することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。
- パラメーター:
deliveryTime
- メッセージの配信時間の値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが配信時間を設定できない場合。- 導入:
- JMS 2.0
- 関連事項:
getJMSDeliveryTime()
getJMSPriority
int getJMSPriority() throws JMSException
メッセージの優先度を取得します。Jakarta Messaging API は、優先度の値の 10 レベルを定義し、0 が最低の優先度、9 が最高の優先度です。さらに、クライアントは、優先度 0 〜 4 を通常の優先度のグラデーションと見なし、優先度 5 〜 9 を優先度のグラデーションと見なす必要があります。
Jakarta Messaging API では、プロバイダーがメッセージの優先順位を厳密に実装する必要はありません。ただし、通常のメッセージよりも優先メッセージを配信するように最善を尽くす必要があります。
- 戻り値:
- デフォルトのメッセージ優先度
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの優先順位を取得できない場合。- 関連事項:
setJMSPriority(int)
setJMSPriority
void setJMSPriority(int priority) throws JMSException
このメッセージの優先度を設定します。このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用して、メッセージの優先度レベルを構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。
- パラメーター:
priority
- このメッセージの優先度- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの優先順位を設定できない場合。- 関連事項:
getJMSPriority()
clearProperties
void clearProperties() throws JMSException
メッセージのプロパティをクリアします。メッセージのヘッダーフィールドと本文はクリアされません。
- 例外:
JMSException
- Jakarta Messaging プロバイダーが内部エラーのためにメッセージプロパティをクリアできない場合。
propertyExists
boolean propertyExists(StringSE name) throws JMSException
プロパティ値が存在するかどうかを示します。- パラメーター:
name
- テストするプロパティの名前- 戻り値:
- プロパティが存在する場合は true
- 例外:
JMSException
- Jakarta Messaging プロバイダーが、内部エラーのためにプロパティが存在するかどうかを判別できない場合。
getBooleanProperty
boolean getBooleanProperty(StringSE name) throws JMSException
指定された名前のboolean
プロパティの値を返します。- パラメーター:
name
-boolean
プロパティの名前- 戻り値:
- 指定された名前の
boolean
プロパティ値 - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。MessageFormatException
- この型変換が無効な場合。
getByteProperty
byte getByteProperty(StringSE name) throws JMSException
指定された名前のbyte
プロパティの値を返します。- パラメーター:
name
-byte
プロパティの名前- 戻り値:
- 指定された名前の
byte
プロパティ値 - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。MessageFormatException
- この型変換が無効な場合。
getShortProperty
short getShortProperty(StringSE name) throws JMSException
指定された名前のshort
プロパティの値を返します。- パラメーター:
name
-short
プロパティの名前- 戻り値:
- 指定された名前の
short
プロパティ値 - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。MessageFormatException
- この型変換が無効な場合。
getIntProperty
int getIntProperty(StringSE name) throws JMSException
指定された名前のint
プロパティの値を返します。- パラメーター:
name
-int
プロパティの名前- 戻り値:
- 指定された名前の
int
プロパティ値 - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。MessageFormatException
- この型変換が無効な場合。
getLongProperty
long getLongProperty(StringSE name) throws JMSException
指定された名前のlong
プロパティの値を返します。- パラメーター:
name
-long
プロパティの名前- 戻り値:
- 指定された名前の
long
プロパティ値 - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。MessageFormatException
- この型変換が無効な場合。
getFloatProperty
float getFloatProperty(StringSE name) throws JMSException
指定された名前のfloat
プロパティの値を返します。- パラメーター:
name
-float
プロパティの名前- 戻り値:
- 指定された名前の
float
プロパティ値 - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。MessageFormatException
- この型変換が無効な場合。
getDoubleProperty
double getDoubleProperty(StringSE name) throws JMSException
指定された名前のdouble
プロパティの値を返します。- パラメーター:
name
-double
プロパティの名前- 戻り値:
- 指定された名前の
double
プロパティ値 - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。MessageFormatException
- この型変換が無効な場合。
getStringProperty
StringSE getStringProperty(StringSE name) throws JMSException
指定された名前のString
プロパティの値を返します。- パラメーター:
name
-String
プロパティの名前- 戻り値:
- 指定された名前の
String
プロパティ値。この名前のプロパティがない場合は、null 値が返されます - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。MessageFormatException
- この型変換が無効な場合。
getObjectProperty
ObjectSE getObjectProperty(StringSE name) throws JMSException
指定された名前の Java オブジェクトプロパティの値を返します。このメソッドを使用して、同等の
setObjectProperty
メソッド呼び出しまたは同等のプリミティブsettypeProperty
メソッドを使用して、メッセージにプロパティとして格納されているオブジェクトをオブジェクト化された形式で返すことができます。- パラメーター:
name
- Java オブジェクトプロパティの名前- 戻り値:
- 指定された名前の Java オブジェクトプロパティ値(オブジェクト化された形式)(たとえば、プロパティが
int
として設定されている場合、Integer
が返されます)。この名前のプロパティがない場合は、null 値が返されます - 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ値を取得できない場合。
getPropertyNames
EnumerationSE getPropertyNames() throws JMSException
すべてのプロパティ名のEnumeration
を返します。Jakarta Messaging 標準ヘッダーフィールドはプロパティとは見なされず、この列挙では返されないことに注意してください。
- 戻り値:
- プロパティ値のすべての名前の列挙
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティ名を取得できない場合。
setBooleanProperty
void setBooleanProperty(StringSE name, boolean value) throws JMSException
指定された名前のboolean
プロパティ値をメッセージに設定します。- パラメーター:
name
-boolean
プロパティの名前value
- 設定するboolean
プロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageNotWriteableException
- プロパティが読み取り専用の場合
setByteProperty
void setByteProperty(StringSE name, byte value) throws JMSException
指定された名前のbyte
プロパティ値をメッセージに設定します。- パラメーター:
name
-byte
プロパティの名前value
- 設定するbyte
プロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageNotWriteableException
- プロパティが読み取り専用の場合
setShortProperty
void setShortProperty(StringSE name, short value) throws JMSException
指定された名前のshort
プロパティ値をメッセージに設定します。- パラメーター:
name
-short
プロパティの名前value
- 設定するshort
プロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageNotWriteableException
- プロパティが読み取り専用の場合
setIntProperty
void setIntProperty(StringSE name, int value) throws JMSException
指定された名前のint
プロパティ値をメッセージに設定します。- パラメーター:
name
-int
プロパティの名前value
- 設定するint
プロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageNotWriteableException
- プロパティが読み取り専用の場合
setLongProperty
void setLongProperty(StringSE name, long value) throws JMSException
指定された名前のlong
プロパティ値をメッセージに設定します。- パラメーター:
name
-long
プロパティの名前value
- 設定するlong
プロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageNotWriteableException
- プロパティが読み取り専用の場合
setFloatProperty
void setFloatProperty(StringSE name, float value) throws JMSException
指定された名前のfloat
プロパティ値をメッセージに設定します。- パラメーター:
name
-float
プロパティの名前value
- 設定するfloat
プロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageNotWriteableException
- プロパティが読み取り専用の場合
setDoubleProperty
void setDoubleProperty(StringSE name, double value) throws JMSException
指定された名前のdouble
プロパティ値をメッセージに設定します。- パラメーター:
name
-double
プロパティの名前value
- 設定するdouble
プロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageNotWriteableException
- プロパティが読み取り専用の場合
setStringProperty
void setStringProperty(StringSE name, StringSE value) throws JMSException
指定された名前のString
プロパティ値をメッセージに設定します。- パラメーター:
name
-String
プロパティの名前value
- 設定するString
プロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageNotWriteableException
- プロパティが読み取り専用の場合
setObjectProperty
void setObjectProperty(StringSE name, ObjectSE value) throws JMSException
指定された名前の Java オブジェクトプロパティ値をメッセージに設定します。このメソッドは、オブジェクト化されたプリミティブオブジェクト型(
Integer
、Double
、Long
...)およびString
オブジェクトに対してのみ機能することに注意してください。- パラメーター:
name
- Java オブジェクトプロパティの名前value
- 設定する Java オブジェクトのプロパティ値- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがプロパティの設定に失敗した場合。IllegalArgumentExceptionSE
- 名前が null の場合、または名前が空の文字列の場合。MessageFormatException
- オブジェクトが無効な場合MessageNotWriteableException
- プロパティが読み取り専用の場合
acknowledge
void acknowledge() throws JMSException
この消費されたメッセージのセッションのすべての消費されたメッセージを確認します。消費されたすべての Jakarta Messaging メッセージは、クライアントがその JMS セッションの消費されたメッセージを明示的に確認応答するように指定した場合に使用する
acknowledge
メソッドをサポートします。消費されたメッセージに対してacknowledge
を呼び出すことにより、クライアントは、メッセージが配信されたセッションによって消費されたすべてのメッセージを確認します。acknowledge
の呼び出しは、トランザクションセッションと暗黙の確認応答モードを使用するように指定されたセッションの両方で無視されます。クライアントは、消費された各メッセージを個別に確認することも、アプリケーション定義のグループとしてメッセージを確認することを選択することもできます。(これは、グループの最後に受信したメッセージで acknowledge を呼び出すことによって実行され、それによってセッションによって消費されたすべてのメッセージを確認します。)
受信したが確認応答されていないメッセージは、再配信される場合があります。
- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの確認応答に失敗した場合。IllegalStateException
- このメソッドが閉じたセッションで呼び出された場合。- 関連事項:
Session.CLIENT_ACKNOWLEDGE
clearBody
void clearBody() throws JMSException
メッセージ本文をクリアします。メッセージの本文をクリアしても、ヘッダー値やプロパティエントリはクリアされません。このメッセージ本文が読み取り専用の場合、このメソッドを呼び出すと、メッセージ本文は新しく作成されたメッセージの空の本文と同じ状態になります。
- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージ本文のクリアに失敗した場合。
getBody
<T> T getBody(ClassSE<T> c) throws JMSException
指定された型のオブジェクトとしてメッセージ本文を返します。このメソッドは、 StreamMessage を除くすべての型のメッセージで呼び出すことができます。メッセージ本文は、指定された型に割り当てることができる必要があります。これは、指定されたクラスまたはインターフェースが、メッセージ本文のクラスと同じであるか、スーパークラスまたはスーパーインターフェースである必要があることを意味します。メッセージに本文がない場合は、任意の型を指定でき、null が返されます。- 型パラメーター:
T
- メッセージ本文の型- パラメーター:
c
- メッセージ本文が割り当てられる型。
メッセージがTextMessage
の場合、このパラメーターはString.class
またはString
が割り当て可能な別の型に設定する必要があります。
メッセージがObjectMessage
の場合、パラメーターはjava.io.Serializable.class
または本文が割り当て可能な別の型に設定する必要があります。
メッセージがMapMessage
の場合、このパラメーターはjava.util.Map.class
(またはjava.lang.Object.class
)に設定する必要があります。
メッセージがBytesMessage
の場合、このパラメーターはbyte[].class
(またはjava.lang.Object.class
)に設定する必要があります。このメソッドは、使用の前後にBytesMessage
をリセットします。
メッセージがTextMessage
、ObjectMessage
、MapMessage
またはBytesMessage
であり、メッセージに本文がない場合、上記は適用されず、このパラメーターは任意の型に設定できます。戻り値は常に null になります。
メッセージがMessage
(ただし、そのサブ型の 1 つではない)の場合、このパラメーターは任意の型に設定できます。戻り値は常に null になります。- 戻り値:
- メッセージ本文
- 例外:
MessageFormatException
-- メッセージが
StreamMessage
の場合 - メッセージ本文を指定された型に割り当てることができない場合
- メッセージが
ObjectMessage
であり、オブジェクトの逆直列化が失敗した場合。
- メッセージが
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージ本文の取得に失敗した場合。- 導入:
- JMS 2.0
isBodyAssignableTo
boolean isBodyAssignableTo(ClassSE c) throws JMSException
メッセージ本文を指定された型に割り当てることができるかどうかを返します。このメソッドが true を返す場合、同じ型の引数を使用して同じメッセージでメソッドgetBody
を呼び出しても、MessageFormatException はスローされません。メッセージが
StreamMessage
の場合、常に false が返されます。メッセージがObjectMessage
であり、オブジェクトの逆直列化が失敗した場合、false が返されます。メッセージに本文がない場合は、任意の型を指定でき、true が返されます。- パラメーター:
c
- 指定された型
メッセージがTextMessage
の場合、このパラメーターがString.class
またはString
が割り当て可能な別の型に設定されている場合にのみ、このメソッドは true を返します。
メッセージがObjectMessage
の場合、このメソッドは、このパラメーターがjava.io.Serializable.class
または本体が割り当て可能な別のクラスに設定されている場合にのみ true を返します。
メッセージがMapMessage
の場合、このパラメーターがjava.util.Map.class
(またはjava.lang.Object.class
)に設定されている場合にのみ、このメソッドは true を返します。
メッセージがBytesMessage
の場合、このパラメーターがbyte[].class
(またはjava.lang.Object.class
)に設定されている場合にのみ、このメソッドは true を返します。
メッセージがTextMessage
、ObjectMessage
、MapMessage
またはBytesMessage
であり、メッセージに本文がない場合、上記は適用されず、このメソッドは、このパラメーターの値に関係なく true を返します。
メッセージがMessage
(ただし、そのサブ型の 1 つではない)の場合、このメソッドは、このパラメーターの値に関係なく true を返します。- 戻り値:
- メッセージ本文を指定された型に割り当てることができるかどうか
- 例外:
JMSException
- 内部エラーが原因で Jakarta Messaging プロバイダーが値を返さない場合。