インターフェース Message
- すべての既知のサブインターフェース:
BytesMessage、MapMessage、ObjectMessage、StreamMessage、TextMessage
public interface MessageMessageインターフェースは、すべての 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オブジェクトのメッセージ本文には、SerializableJava オブジェクトが含まれています。 - バイト -
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 longDEFAULT_DELIVERY_DELAYメッセージプロデューサーのデフォルトの配信遅延はゼロです。static intDEFAULT_DELIVERY_MODEメッセージプロデューサーのデフォルトの配信モードはPERSISTENTです。static intDEFAULT_PRIORITYメッセージプロデューサーのデフォルトの優先度は 4 です。static longDEFAULT_TIME_TO_LIVEメッセージプロデューサーのデフォルトの存続時間は無制限です。メッセージが期限切れになることはありません。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 voidacknowledge()この消費されたメッセージのセッションのすべての消費されたメッセージを確認します。voidclearBody()メッセージ本文をクリアします。voidclearProperties()メッセージのプロパティをクリアします。<T> TgetBody(ClassSE<T> c)指定された型のオブジェクトとしてメッセージ本文を返します。booleangetBooleanProperty(StringSE name)指定された名前のbooleanプロパティの値を返します。bytegetByteProperty(StringSE name)指定された名前のbyteプロパティの値を返します。doublegetDoubleProperty(StringSE name)指定された名前のdoubleプロパティの値を返します。floatgetFloatProperty(StringSE name)指定された名前のfloatプロパティの値を返します。intgetIntProperty(StringSE name)指定された名前のintプロパティの値を返します。StringSEgetJMSCorrelationID()メッセージの相関 ID を取得します。byte[]getJMSCorrelationIDAsBytes()メッセージのバイト配列として相関 ID を取得します。intgetJMSDeliveryMode()このメッセージに指定されたDeliveryMode値を取得します。longgetJMSDeliveryTime()メッセージの配信時間の値を取得します。DestinationgetJMSDestination()このメッセージのDestinationオブジェクトを取得します。longgetJMSExpiration()メッセージの有効期限を取得します。StringSEgetJMSMessageID()メッセージ ID を取得します。intgetJMSPriority()メッセージの優先度を取得します。booleangetJMSRedelivered()このメッセージが再配信されているかどうかの指標を取得します。DestinationgetJMSReplyTo()このメッセージへの応答の送信先となるDestinationオブジェクトを取得します。longgetJMSTimestamp()メッセージのタイムスタンプを取得します。StringSEgetJMSType()メッセージの送信時にクライアントから提供されたメッセージ型識別子を取得します。longgetLongProperty(StringSE name)指定された名前のlongプロパティの値を返します。ObjectSEgetObjectProperty(StringSE name)指定された名前の Java オブジェクトプロパティの値を返します。EnumerationSEgetPropertyNames()すべてのプロパティ名のEnumerationを返します。shortgetShortProperty(StringSE name)指定された名前のshortプロパティの値を返します。StringSEgetStringProperty(StringSE name)指定された名前のStringプロパティの値を返します。booleanisBodyAssignableTo(ClassSE c)メッセージ本文を指定された型に割り当てることができるかどうかを返します。booleanpropertyExists(StringSE name)プロパティ値が存在するかどうかを示します。voidsetBooleanProperty(StringSE name, boolean value)指定された名前のbooleanプロパティ値をメッセージに設定します。voidsetByteProperty(StringSE name, byte value)指定された名前のbyteプロパティ値をメッセージに設定します。voidsetDoubleProperty(StringSE name, double value)指定された名前のdoubleプロパティ値をメッセージに設定します。voidsetFloatProperty(StringSE name, float value)指定された名前のfloatプロパティ値をメッセージに設定します。voidsetIntProperty(StringSE name, int value)指定された名前のintプロパティ値をメッセージに設定します。voidsetJMSCorrelationID(StringSE correlationID)メッセージの相関 ID を設定します。voidsetJMSCorrelationIDAsBytes(byte[] correlationID)相関 ID をメッセージのバイト配列として設定します。voidsetJMSDeliveryMode(int deliveryMode)このメッセージのDeliveryMode値を設定します。voidsetJMSDeliveryTime(long deliveryTime)メッセージの配信時間の値を設定します。voidsetJMSDestination(Destination destination)このメッセージのDestinationオブジェクトを設定します。voidsetJMSExpiration(long expiration)メッセージの有効期限値を設定します。voidsetJMSMessageID(StringSE id)メッセージ ID を設定します。voidsetJMSPriority(int priority)このメッセージの優先度を設定します。voidsetJMSRedelivered(boolean redelivered)このメッセージを再配信するかどうかを指定します。voidsetJMSReplyTo(Destination replyTo)このメッセージへの応答の送信先となるDestinationオブジェクトを設定します。voidsetJMSTimestamp(long timestamp)メッセージのタイムスタンプを設定します。voidsetJMSType(StringSE type)メッセージ型を設定します。voidsetLongProperty(StringSE name, long value)指定された名前のlongプロパティ値をメッセージに設定します。voidsetObjectProperty(StringSE name, ObjectSE value)指定された名前の Java オブジェクトプロパティ値をメッセージに設定します。voidsetShortProperty(StringSE name, short value)指定された名前のshortプロパティ値をメッセージに設定します。voidsetStringProperty(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 プロバイダーが値を返さない場合。