7.4.11 QueueSender(MessageProducer)インタフェース

QueueSender(MessageProducer)インタフェースは,JMSクライアントがあて先にメッセージを送信するために使用します。

<この項の構成>
(1) メッセージの送信
(2) キューセンダのクローズ
(3) 形式
(4) フィールド
(5) メソッド

(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

メッセージプロデューサをクローズします。メッセージプロデューサには幾つかのリソースが割り当てられている場合があるため,リソースが不要になった場合はメッセージプロデューサをクローズしてください。

(b) getDeliveryModeメソッド

public int getDeliveryMode() throws JMSException

このメソッドは未サポートです。

このメソッドを発行した場合,0を返します。

(c) getDisableMessageIDメソッド

public boolean getDisableMessageID() throws JMSException

このメソッドは未サポートです。

このメソッドを発行した場合,falseを返します。

(d) getDisableMessageTimestampメソッド

public boolean getDisableMessageTimestamp() throws JMSException

このメソッドは未サポートです。

このメソッドを発行した場合,falseを返します。

(e) getPriorityメソッド

public int getPriority() throws JMSException

メッセージプロデューサに指定された優先度を返します。なお,この値はメッセージに設定されたJMSPriorityヘッダの値と同じです。

(f) getTimeToLiveメソッド

public long getTimeToLive() throws JMSException

このメソッドは未サポートです。

このメソッドを発行した場合,0を返します。

(g) setDeliveryModeメソッド

public void setDeliveryMode(int deliveryMode) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(h) setDisableMessageIDメソッド

public void setDisableMessageID(boolean value) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(i) setDisableMessageTimestampメソッド

public void setDisableMessageTimestamp(boolean value)
 throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(j) setPriorityメソッド

public void setPriority(int defaultPriority) throws JMSException

プロデューサのデフォルトの優先度を指定します。0(最低)~9(最高)の範囲の値を指定します。デフォルト値はjavax.jms.Message.DEFAULT_PRIORITYです。範囲以外の値を指定した場合,JMSExceptionが発生します。

(k) setTimeToLiveメソッド

public void setTimeToLive(long timeToLive) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(l) getQueueメソッド

public Queue getQueue() throws JMSException

キューセンダに関連づけられたキューを返します。

(m) sendメソッド

public void send(Message message) throws JMSException

メッセージをキューに送信します。キューセンダで設定した優先度が使用されます。

送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。

(n) sendメソッド

public void send(Message message, int deliveryMode, int priority,
 long timeToLive) throws JMSException

メッセージをキューに送信します。

(o) sendメソッド

public void send(Queue queue, Message message) throws JMSException

メッセージをキューに送信します。キューセンダで設定した優先度が使用されます。

queue引数にnullが指定された場合,Session.createSender()メソッドのqueue引数に指定されたキューにメッセージを送信します。

送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。

(p) sendメソッド

public void send(Queue queue, Message message, int deliveryMode,
 int priority, long timeToLive) throws JMSException

メッセージをキューに送信します。

queue引数にnullが指定された場合,Session.createSender()メソッドのqueue引数に指定されたキューにメッセージを送信します。