パッケージ jakarta.jms

インターフェース Message

すべての既知のサブインターフェース:
BytesMessageMapMessageObjectMessageStreamMessageTextMessage

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 をスローする必要があります。

プロパティ値は booleanbyteshortintlongfloatdoubleString にすることができます。

プロパティ値は、メッセージを送信する前に設定されます。クライアントがメッセージを受信すると、そのプロパティは読み取り専用モードになります。この時点でクライアントがプロパティを設定しようとすると、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 メソッドは、クラス BooleanByteShortIntegerLongFloatDoubleString の値を受け入れます。他のクラスを使用しようとすると、JMSException をスローする必要があります。

getObjectProperty メソッドは、クラス BooleanByteShortIntegerLongFloatDoubleString の値のみを返します。

プロパティ値の順序は定義されていません。メッセージのプロパティ値を反復処理するには、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 を返す任意の文字です。
    • 識別子を NULLTRUEFALSE という名前にすることはできません。
    • 識別子を NOTANDORBETWEENLIKEINIS または ESCAPE にすることはできません。
    • 識別子は、ヘッダーフィールド参照またはプロパティ参照のいずれかです。メッセージセレクタのプロパティ値の型は、プロパティの設定に使用される型に対応しています。メッセージに存在しないプロパティが参照されている場合、その値は NULL です。
    • プロパティがメッセージセレクタ式で使用されている場合、プロパティの get メソッドに適用される変換は適用されません。例: 次のように、プロパティを文字列値として設定するとします。
       myMessage.setStringProperty("NumberOfOrders", "2");
       
      文字列は算術式で使用できないため、メッセージセレクターの次の式は false と評価されます。
       "NumberOfOrders > 1"
       
    • 識別子では大文字と小文字が区別されます。
    • メッセージヘッダーフィールドの参照は JMSDeliveryModeJMSPriorityJMSMessageIDJMSTimestampJMSCorrelationIDJMSType に制限されています。JMSMessageIDJMSCorrelationIDJMSType 値は null の場合があり、null の場合は NULL 値として扱われます。
    • 'JMSX' で始まる名前は、Jakarta Messaging で定義されたプロパティ名です。
    • 'JMS_' で始まる名前は、プロバイダー固有のプロパティ名です。
    • 'JMS' で始まらない名前は、アプリケーション固有のプロパティ名です。
  • 空白は、Java プログラミング言語で定義されているものと同じです。スペース、水平タブ、フォームフィード、行末記号です。
  • 式:
    • セレクターは条件式です。true の一致を評価するセレクター。false または不明と評価されるセレクターが一致しません。
    • 算術式は、それ自体、算術演算、識別子(値は数値リテラルとして扱われます)、数値リテラルで構成されます。
    • 条件式は、それ自体、比較演算、論理演算で構成されます。
  • 式の評価を順序付けるための標準ブラケット () がサポートされています。
  • 優先順位の論理演算子: NOTANDOR
  • 比較演算子: =>>=<<=<> (次の値に等しくない)
    • 同様の型の値のみを比較できます。1 つの例外は、正確な数値と概算の数値を比較することが有効であることです。必要な型変換は、Java プログラミング言語の数値昇格の規則によって定義されます。似ていない型の値の比較が試みられた場合、操作の値は false です。いずれかの型値が NULL と評価された場合、式の値は不明です。
    • 文字列とブール値の比較は、= と <> に制限されています。2 つの文字列は、同じ文字シーケンスが含まれている場合にのみ等しくなります。
  • 優先順位の算術演算子:
    • +- (単項)
    • */ (乗算と除算)
    • +- (加減)
    • 算術演算では、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 値を含むセレクター式の評価は、SQL92 NULL セマンティクスによって定義されます。これらのセマンティクスの簡単な説明をここに示します。

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
関連事項:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final long
    メッセージプロデューサーのデフォルトの配信遅延はゼロです。
    static final int
    メッセージプロデューサーのデフォルトの配信モードは PERSISTENT です。
    static final int
    メッセージプロデューサーのデフォルトの優先度は 4 です。
    static final long
    メッセージプロデューサーのデフォルトの存続時間は無制限です。メッセージが期限切れになることはありません。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    この消費されたメッセージのセッションのすべての消費されたメッセージを確認します。
    void
    メッセージ本文をクリアします。
    void
    メッセージのプロパティをクリアします。
    <T> T
    指定された型のオブジェクトとしてメッセージ本文を返します。
    boolean
    指定された名前の boolean プロパティの値を返します。
    byte
    指定された名前の byte プロパティの値を返します。
    double
    指定された名前の double プロパティの値を返します。
    float
    指定された名前の float プロパティの値を返します。
    int
    指定された名前の int プロパティの値を返します。
    メッセージの相関 ID を取得します。
    byte[]
    メッセージのバイト配列として相関 ID を取得します。
    int
    このメッセージに指定された DeliveryMode 値を取得します。
    long
    メッセージの配信時間の値を取得します。
    このメッセージの Destination オブジェクトを取得します。
    long
    メッセージの有効期限を取得します。
    メッセージ ID を取得します。
    int
    メッセージの優先度を取得します。
    boolean
    このメッセージが再配信されているかどうかの指標を取得します。
    このメッセージへの応答の送信先となる Destination オブジェクトを取得します。
    long
    メッセージのタイムスタンプを取得します。
    メッセージの送信時にクライアントから提供されたメッセージ型識別子を取得します。
    long
    指定された名前の long プロパティの値を返します。
    指定された名前の Java オブジェクトプロパティの値を返します。
    すべてのプロパティ名の Enumeration を返します。
    short
    指定された名前の short プロパティの値を返します。
    指定された名前の String プロパティの値を返します。
    boolean
    メッセージ本文を指定された型に割り当てることができるかどうかを返します。
    boolean
    プロパティ値が存在するかどうかを示します。
    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
    メッセージの相関 ID を設定します。
    void
    setJMSCorrelationIDAsBytes(byte[] correlationID)
    相関 ID をメッセージのバイト配列として設定します。
    void
    setJMSDeliveryMode(int deliveryMode)
    このメッセージの DeliveryMode 値を設定します。
    void
    setJMSDeliveryTime(long deliveryTime)
    メッセージの配信時間の値を設定します。
    void
    このメッセージの Destination オブジェクトを設定します。
    void
    setJMSExpiration(long expiration)
    メッセージの有効期限値を設定します。
    void
    メッセージ ID を設定します。
    void
    setJMSPriority(int priority)
    このメッセージの優先度を設定します。
    void
    setJMSRedelivered(boolean redelivered)
    このメッセージを再配信するかどうかを指定します。
    void
    このメッセージへの応答の送信先となる Destination オブジェクトを設定します。
    void
    setJMSTimestamp(long timestamp)
    メッセージのタイムスタンプを設定します。
    void
    メッセージ型を設定します。
    void
    setLongProperty(StringSE name, long value)
    指定された名前の long プロパティ値をメッセージに設定します。
    void
    指定された名前の Java オブジェクトプロパティ値をメッセージに設定します。
    void
    setShortProperty(StringSE name, short value)
    指定された名前の short プロパティ値をメッセージに設定します。
    void
    指定された名前の 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

      void setJMSMessageID(StringSE id) throws JMSException
      メッセージ ID を設定します。

      このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用してメッセージ ID を構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。

      パラメーター:
      id - メッセージの ID
      例外:
      JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージ ID の設定に失敗した場合。
      関連事項:
    • getJMSTimestamp

      long getJMSTimestamp() throws JMSException
      メッセージのタイムスタンプを取得します。

      JMSTimestamp ヘッダーフィールドには、メッセージが送信されるプロバイダーに渡された時刻が含まれます。トランザクションまたは他のクライアント側のメッセージのキューイングのために実際の送信が後で発生する可能性があるため、メッセージが実際に送信された時刻ではありません。

      メッセージが送信されると、JMSTimestamp は無視されます。send または publish メソッドが戻ると、呼び出しと戻りの間のどこかに時間値が含まれます。この値は、Java プログラミング言語の通常のミリ時間値の形式です。

      タイムスタンプはメッセージのサイズを作成して増やすためにある程度の努力を要するため、一部の Jakarta Messaging プロバイダーは、タイムスタンプがアプリケーションによって使用されていないというヒントが与えられた場合、メッセージのオーバーヘッドを最適化できる場合があります。MessageProducer.setDisableMessageTimestamp メソッドを呼び出すことにより、Jakarta Messaging クライアントは、そのメッセージプロデューサーによって送信されるすべてのメッセージに対してこの潜在的な最適化を可能にします。Jakarta Messaging プロバイダーがこのヒントを受け入れる場合、これらのメッセージのタイムスタンプはゼロに設定する必要があります。プロバイダーがヒントを無視する場合は、タイムスタンプを通常の値に設定する必要があります。

      戻り値:
      メッセージのタイムスタンプ
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーがタイムスタンプの取得に失敗した場合。
      関連事項:
    • setJMSTimestamp

      void setJMSTimestamp(long timestamp) throws JMSException
      メッセージのタイムスタンプを設定します。

      このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用してメッセージのタイムスタンプを設定することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。

      パラメーター:
      timestamp - このメッセージのタイムスタンプ
      例外:
      JMSException - 内部エラーのために Jakarta Messaging プロバイダーがタイムスタンプの設定に失敗した場合。
      関連事項:
    • getJMSCorrelationIDAsBytes

      byte[] getJMSCorrelationIDAsBytes() throws JMSException
      メッセージのバイト配列として相関 ID を取得します。

      JMSCorrelationID に byte[] 値を使用することは移植できません。

      戻り値:
      バイトの配列としてのメッセージの相関 ID
      例外:
      JMSException - Jakarta Messaging プロバイダーが何らかの内部エラーのために相関 ID を取得できない場合。
      関連事項:
    • 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

      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

      StringSE getJMSCorrelationID() throws JMSException
      メッセージの相関 ID を取得します。

      このメソッドは、プロバイダー固有のメッセージ ID またはアプリケーション固有の String 値のいずれかである相関 ID 値を返すために使用されます。

      戻り値:
      String としてのメッセージの相関 ID
      例外:
      JMSException - Jakarta Messaging プロバイダーが何らかの内部エラーのために相関 ID を取得できない場合。
      関連事項:
    • getJMSReplyTo

      Destination getJMSReplyTo() throws JMSException
      このメッセージへの応答の送信先となる Destination オブジェクトを取得します。
      戻り値:
      このメッセージへのレスポンスの送信先となる Destination 
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが JMSReplyTo 宛先の取得に失敗した場合。
      関連事項:
    • setJMSReplyTo

      void setJMSReplyTo(Destination replyTo) throws JMSException
      このメッセージへの応答の送信先となる Destination オブジェクトを設定します。

      JMSReplyTo ヘッダーフィールドには、現在のメッセージへの応答を送信する宛先が含まれています。null の場合、応答は期待されません。宛先は、Queue オブジェクトまたは Topic オブジェクトのいずれかです。

      null JMSReplyTo 値で送信されたメッセージは、何らかのイベントの通知である場合もあれば、送信者が関心があると考えるデータである場合もあります。

      JMSReplyTo 値を持つメッセージは、通常、レスポンスを期待します。レスポンスはオプションです。決定するのはクライアント次第です。これらのメッセージはリクエストと呼ばれます。リクエストにレスポンスして送信されるメッセージは、レスポンスと呼ばれます。

      場合によっては、クライアントは、以前に送信したリクエストを、受信したばかりの応答と一致させたい場合があります。クライアントは、この目的で JMSCorrelationID ヘッダーフィールドを使用できます。

      パラメーター:
      replyTo - このメッセージへのレスポンスの送信先となる Destination 
      例外:
      JMSException - 内部エラーのために Jakarta Messaging プロバイダーが JMSReplyTo 宛先の設定に失敗した場合。
      関連事項:
    • getJMSDestination

      Destination getJMSDestination() throws JMSException
      このメッセージの Destination オブジェクトを取得します。

      JMSDestination ヘッダーフィールドには、メッセージの送信先が含まれています。

      メッセージが送信されるとき、このフィールドは無視されます。send または publish メソッドの完了後、フィールドはメソッドによって指定された宛先を保持します。

      メッセージを受信するとき、その JMSDestination 値は、メッセージが送信されたときに割り当てられた値と同じである必要があります。

      戻り値:
      このメッセージの宛先
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが宛先を取得できない場合。
      関連事項:
    • setJMSDestination

      void setJMSDestination(Destination destination) throws JMSException
      このメッセージの Destination オブジェクトを設定します。

      このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用して、メッセージの宛先を構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。

      パラメーター:
      destination - このメッセージの宛先
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが宛先の設定に失敗した場合。
      関連事項:
    • getJMSDeliveryMode

      int getJMSDeliveryMode() throws JMSException
      このメッセージに指定された DeliveryMode 値を取得します。
      戻り値:
      このメッセージの配信モード
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが配信モードを取得できなかった場合
      関連事項:
    • setJMSDeliveryMode

      void setJMSDeliveryMode(int deliveryMode) throws JMSException
      このメッセージの DeliveryMode 値を設定します。

      このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用して、メッセージの配信モードを構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。

      パラメーター:
      deliveryMode - このメッセージの配信モード
      例外:
      JMSException - 内部エラーのために Jakarta Messaging プロバイダーが配信モードの設定に失敗した場合。
      関連事項:
    • getJMSRedelivered

      boolean getJMSRedelivered() throws JMSException
      このメッセージが再配信されているかどうかの指標を取得します。

      クライアントが JMSRedelivered フィールドが設定されたメッセージを受信した場合、このメッセージは以前に配信された可能性がありますが、その時点で受信が確認されていなかった可能性があります。

      戻り値:
      このメッセージが再配信されている場合は true
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが再配信状態を取得できない場合。
      関連事項:
    • setJMSRedelivered

      void setJMSRedelivered(boolean redelivered) throws JMSException
      このメッセージを再配信するかどうかを指定します。

      このメソッドは、メッセージの配信時にこのフィールドを設定するためにのみ Jakarta Messaging プロバイダーが使用するためのものです。クライアントがこのメッセージを使用して、メッセージの再配信ステータスを構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。

      パラメーター:
      redelivered - このメッセージが再配信されているかどうかの表示
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが再配信状態の設定に失敗した場合。
      関連事項:
    • getJMSType

      StringSE getJMSType() throws JMSException
      メッセージの送信時にクライアントから提供されたメッセージ型識別子を取得します。
      戻り値:
      メッセージ型
      例外:
      JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージ型の取得に失敗した場合。
      関連事項:
    • 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 プロバイダーがメッセージ型の設定に失敗した場合。
      関連事項:
    • getJMSExpiration

      long getJMSExpiration() throws JMSException
      メッセージの有効期限を取得します。

      メッセージが送信されると、JMSExpiration ヘッダーフィールドは未割り当てのままになります。send または publish メソッドの完了後、メッセージの有効期限を保持します。これは、1970 年 1 月 1 日 UTC の有効期限と午前 0 時の差をミリ秒単位で測定したものです。

      存続可能時間がゼロとして指定されている場合、JMSExpiration はゼロに設定され、メッセージが期限切れにならないことを示します。

      メッセージの有効期限に達した場合、プロバイダーはメッセージを破棄する必要があります。Jakarta Messaging API は、メッセージの有効期限の通知の形式を定義していません。

      クライアントは、期限切れのメッセージを受信しないでください。ただし、Jakarta Messaging API は、これが発生しないことを保証するものではありません。

      戻り値:
      メッセージの有効期限の値
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの有効期限を取得できない場合。
      関連事項:
    • setJMSExpiration

      void setJMSExpiration(long expiration) throws JMSException
      メッセージの有効期限値を設定します。

      このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントは、このメソッドを使用してメッセージの有効期限を構成することはできません。このメソッドは public であり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。

      パラメーター:
      expiration - メッセージの有効期限
      例外:
      JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの有効期限を設定できない場合。
      関連事項:
    • getJMSDeliveryTime

      long getJMSDeliveryTime() throws JMSException
      メッセージの配信時間の値を取得します。

      メッセージが送信されると、JMSDeliveryTime ヘッダーフィールドは未割り当てのままになります。send または publish メソッドの完了後、メッセージの配信時間を保持します。これは、1970 年 1 月 1 日 UTC の配達時間と深夜の間のミリ秒単位で測定された差です。

      メッセージの配信時間は、Jakarta Messaging プロバイダーがメッセージをコンシューマーに配信する可能性のある最も早い時間です。プロバイダーは、配信時間に達する前にメッセージを配信してはなりません。

      戻り値:
      メッセージの配信時間の値
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが配信時間を取得できない場合。
      導入:
      JMS 2.0
      関連事項:
    • setJMSDeliveryTime

      void setJMSDeliveryTime(long deliveryTime) throws JMSException
      メッセージの配信時間の値を設定します。

      このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用して、メッセージの配信時間を設定することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。

      パラメーター:
      deliveryTime - メッセージの配信時間の値
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが配信時間を設定できない場合。
      導入:
      JMS 2.0
      関連事項:
    • getJMSPriority

      int getJMSPriority() throws JMSException
      メッセージの優先度を取得します。

      Jakarta Messaging API は、優先度の値の 10 レベルを定義し、0 が最低の優先度、9 が最高の優先度です。さらに、クライアントは、優先度 0 〜 4 を通常の優先度のグラデーションと見なし、優先度 5 〜 9 を優先度のグラデーションと見なす必要があります。

      Jakarta Messaging API では、プロバイダーがメッセージの優先順位を厳密に実装する必要はありません。ただし、通常のメッセージよりも優先メッセージを配信するように最善を尽くす必要があります。

      戻り値:
      デフォルトのメッセージ優先度
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの優先順位を取得できない場合。
      関連事項:
    • setJMSPriority

      void setJMSPriority(int priority) throws JMSException
      このメッセージの優先度を設定します。

      このメソッドは、Jakarta Messaging プロバイダーが、メッセージの送信時にこのフィールドを設定するためにのみ使用します。クライアントがこのメッセージを使用して、メッセージの優先度レベルを構成することはできません。このメソッドはパブリックであり、実装が独自のものではないメッセージを送信するときに Jakarta Messaging プロバイダーがこのフィールドを設定できるようにします。

      パラメーター:
      priority - このメッセージの優先度
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーがメッセージの優先順位を設定できない場合。
      関連事項:
    • 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 オブジェクトプロパティ値をメッセージに設定します。

      このメソッドは、オブジェクト化されたプリミティブオブジェクト型(IntegerDoubleLong ...)および 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 - このメソッドが閉じたセッションで呼び出された場合。
      関連事項:
    • 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 をリセットします。
      メッセージが TextMessageObjectMessageMapMessage または 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 を返します。
      メッセージが TextMessageObjectMessageMapMessage または BytesMessage であり、メッセージに本文がない場合、上記は適用されず、このメソッドは、このパラメーターの値に関係なく true を返します。
      メッセージが Message (ただし、そのサブ型の 1 つではない)の場合、このメソッドは、このパラメーターの値に関係なく true を返します。
      戻り値:
      メッセージ本文を指定された型に割り当てることができるかどうか
      例外:
      JMSException - 内部エラーが原因で Jakarta Messaging プロバイダーが値を返さない場合。