7.4.11 QueueSender(MessageProducer)インタフェース
QueueSender(MessageProducer)インタフェースは,JMSクライアントがあて先にメッセージを送信するために使用します。
- 〈この項の構成〉
(1) メッセージの送信
指定したあて先にメッセージを送信できます。send()メソッドの実行中に,JMSクライアント内の他スレッドがメッセージを変更してはいけません。メッセージが変更された場合のsend()メソッドの結果は保証されません。JMSPriorityヘッダの設定は,メッセージの送信処理の一部として実行されます。
(2) キューセンダのクローズ
QueueSenderオブジェクトをクローズできます。クローズによって,QueueSenderオブジェクトに関連づけられたすべてのリソースを解放します。QueueSender(MessageProducer)インタフェースのメソッドは,複数スレッドからの同時呼び出しをJMSで禁止されています。ただし,close()メソッドだけは,複数スレッドからの同時発行に対してパラレルに実行できます。
(3) 形式
public interface MessageProducer { public void close() throws JMSException; public int getDeliveryMode() throws JMSException; public boolean getDisableMessageID() throws JMSException; public boolean getDisableMessageTimestamp() throws JMSException; public int getPriority() throws JMSException; public long getTimeToLive() throws JMSException; public void setDeliveryMode(int deliveryMode) throws JMSException; public void setDisableMessageID(boolean value) throws JMSException; public void setDisableMessageTimestamp(boolean value) throws JMSException; public void setPriority(int defaultPriority) throws JMSException; public void setTimeToLive(long timeToLive) throws JMSException; } public interface QueueSender extends MessageProducer { public Queue getQueue() throws JMSException; public void send(Message message) throws JMSException; public void send(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException; public void send(Queue queue, Message message) throws JMSException; public void send(Queue queue, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException; }
(4) フィールド
ありません。
(5) メソッド
「(3) 形式」に記載した順序で各メソッドを説明します。
(a) closeメソッド
public void close() throws JMSException
メッセージプロデューサをクローズします。メッセージプロデューサには幾つかのリソースが割り当てられている場合があるため,リソースが不要になった場合はメッセージプロデューサをクローズしてください。
-
クローズされているメッセージプロデューサをクローズしても例外は発生しません。
-
このメソッドはMessageProducerインタフェースでは唯一,複数スレッドから同時に発行できます。
-
引数
ありません。
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージプロデューサをクローズする処理に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(b) getDeliveryModeメソッド
public int getDeliveryMode() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,0を返します。
-
引数
ありません。
-
戻り値
メッセージプロデューサ用のメッセージ管理形態。次に示すどちらかの値を返します。
-
DeliveryMode.NON_PERSISTENT:非永続
-
DeliveryMode.PERSISTENT:永続
-
-
例外
ありません。
(c) getDisableMessageIDメソッド
public boolean getDisableMessageID() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,falseを返します。
-
引数
ありません。
-
戻り値
メッセージ識別子が無効かどうかを示す値です。
-
例外
ありません。
(d) getDisableMessageTimestampメソッド
public boolean getDisableMessageTimestamp() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,falseを返します。
-
引数
ありません。
-
戻り値
メッセージのタイムスタンプが無効かどうかを示す値です。次に示すどちらかを返します。
-
true:メッセージ識別子は使用できません。
-
false:メッセージ識別子は使用できます。
-
-
例外
ありません。
(e) getPriorityメソッド
public int getPriority() throws JMSException
メッセージプロデューサに指定された優先度を返します。なお,この値はメッセージに設定されたJMSPriorityヘッダの値と同じです。
-
引数
ありません。
-
戻り値
メッセージプロデューサ用のメッセージ優先度。
-
例外
例外クラス
説明
JMSException
セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。
内部エラーのためにJMSプロバイダが優先度の取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(f) getTimeToLiveメソッド
public long getTimeToLive() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,0を返します。
-
引数
ありません。
-
戻り値
メッセージの有効期間(ミリ秒単位)。ゼロは無制限を示します。
-
例外
ありません。
(g) setDeliveryModeメソッド
public void setDeliveryMode(int deliveryMode) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
-
引数
引数名
説明
deliveryMode
メッセージプロデューサのメッセージの管理形態。次に示すどちらかの値を指定します。
-
DeliveryMode.NON_PERSISTENT:非永続
-
DeliveryMode.PERSISTENT:永続
-
-
戻り値
ありません。
-
例外
ありません。
(h) setDisableMessageIDメソッド
public void setDisableMessageID(boolean value) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
-
引数
引数名
説明
value
メッセージ識別子が無効かどうかを示す値
-
戻り値
ありません。
-
例外
ありません。
(i) setDisableMessageTimestampメソッド
public void setDisableMessageTimestamp(boolean value) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
-
引数
引数名
説明
value
メッセージ識別子が無効かどうかを示す値
-
戻り値
ありません。
-
例外
ありません。
(j) setPriorityメソッド
public void setPriority(int defaultPriority) throws JMSException
プロデューサのデフォルトの優先度を指定します。0(最低)〜9(最高)の範囲の値を指定します。デフォルト値はjavax.jms.Message.DEFAULT_PRIORITYです。範囲以外の値を指定した場合,JMSExceptionが発生します。
-
引数
引数名
説明
defaultPriority
メッセージプロデューサ用のメッセージ優先度。0〜9の範囲で値を指定します。
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。
内部エラーのためにJMSプロバイダが優先度の設定に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(k) setTimeToLiveメソッド
public void setTimeToLive(long timeToLive) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
-
引数
引数名
説明
timeToLive
メッセージの有効期間(ミリ秒単位)。ゼロは無制限を示します。
-
戻り値
ありません。
-
例外
ありません。
(l) getQueueメソッド
public Queue getQueue() throws JMSException
キューセンダに関連づけられたキューを返します。
-
引数
ありません。
-
戻り値
送信側のキュー。
-
例外
例外クラス
説明
JMSException
セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。
内部エラーのためにJMSプロバイダがQueueSenderオブジェクトに関連づけられたキューの取得に失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(m) sendメソッド
public void send(Message message) throws JMSException
メッセージをキューに送信します。キューセンダで設定した優先度が使用されます。
送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。
-
引数
引数名
説明
message
送信するメッセージ
-
戻り値
ありません。
-
例外
例外クラス
説明
InvalidDestinationException
JMSクライアントがメソッドを使用する際,キューセンダに無効なキューを指定しました。
JMSException
セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。
message引数にnullが指定されました。
内部エラーのためにJMSプロバイダがメッセージの送信に失敗しました。
MessageFormatException
無効なメッセージが指定されました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(n) sendメソッド
public void send(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
メッセージをキューに送信します。
-
送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。
-
このメソッドを発行した場合,deliveryMode引数とtimeToLive引数を無視して実行します。
-
引数
引数名
説明
message
送信するメッセージ
deliveryMode
使用するメッセージの管理形態。次に示すどちらかの値を指定します。
-
DeliveryMode.NON_PERSISTENT:非永続
-
DeliveryMode.PERSISTENT:永続
priority
メッセージの優先度。0(最低)〜9(最高)の範囲で値を指定します。
timeToLive
メッセージの有効期間(ミリ秒)
-
-
戻り値
ありません。
-
例外
例外クラス
説明
InvalidDestinationException
JMSクライアントがメソッドを使用する際,キューセンダに無効なキューを指定しました。
JMSException
セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。
message引数にnullが指定されました。
内部エラーのためにJMSプロバイダがメッセージの送信に失敗しました。
MessageFormatException
無効なメッセージが指定されました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(o) sendメソッド
public void send(Queue queue, Message message) throws JMSException
メッセージをキューに送信します。キューセンダで設定した優先度が使用されます。
queue引数にnullが指定された場合,Session.createSender()メソッドのqueue引数に指定されたキューにメッセージを送信します。
送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。
-
引数
引数名
説明
queue
メッセージのあて先キュー
message
送信するメッセージ
-
戻り値
ありません。
-
例外
例外クラス
説明
InvalidDestinationException
JMSクライアントがメソッドを使用する際,キューセンダに無効なキューを指定しました。
JMSException
セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。
message引数にnullが指定されました。
内部エラーのためにJMSプロバイダがメッセージの送信に失敗しました。
MessageFormatException
無効なメッセージが指定されました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(p) sendメソッド
public void send(Queue queue, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
メッセージをキューに送信します。
queue引数にnullが指定された場合,Session.createSender()メソッドのqueue引数に指定されたキューにメッセージを送信します。
-
送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。
-
このメソッドを発行した場合,deliveryMode引数とtimeToLive引数を無視して実行します。
-
引数
引数名
説明
queue
メッセージのあて先キュー
message
送信するメッセージ
deliveryMode
使用するメッセージの管理形態。次に示すどちらかの値を指定します。
-
DeliveryMode.NON_PERSISTENT:非永続
-
DeliveryMode.PERSISTENT:永続
priority
メッセージの優先度。0(最低)〜9(最高)の範囲で値を指定します。
timeToLive
メッセージの有効期間(ミリ秒)
-
-
戻り値
ありません。
-
例外
例外クラス
説明
InvalidDestinationException
JMSクライアントがメソッドを使用する際,キューセンダに無効なキューを指定しました。
JMSException
セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。
message引数にnullが指定されました。
priority引数に0〜9の範囲外の値が指定されました。
内部エラーのためにJMSプロバイダがメッセージの送信に失敗しました。
MessageFormatException
無効なメッセージが指定されました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。