MessageConsumerインタフェース・QueueReceiverインタフェース(JMS)
QueueReceiverインタフェースは,クライアントがキューからメッセージを受け取るために使用します。
形式
public interface MessageConsumer { public void close() throws JMSException; public MessageListener getMessageListener() throws JMSException; public java.lang.String getMessageSelector() throws JMSException; public Message receive() throws JMSException; public Message receive(long timeout) throws JMSException; public Message receiveNoWait() throws JMSException; public void setMessageListener(MessageListener listener) throws JMSException; } public interface QueueReceiver extends MessageConsumer { public Queue getQueue() throws JMSException; }
メソッド
● public void close() throws JMSException
TP1/Message Queueが確保した資源を解放するために,資源(キュー)をクローズします。
- 例外
-
JMSException:クローズに失敗しました。
● public MessageListener getMessageListener() throws JMSException
メッセージリスナを返します。
- 例外
-
JMSException:エラーが発生しました。
戻り値:メッセージリスナ
● public java.lang.String getMessageSelector() throws JMSException
メッセージセレクタを返します。
- 例外
-
JMSException:エラーが発生しました。
戻り値:メッセージセレクタ
● public Message receive() throws JMSException
該当するキューレシーバのために作られた,次メッセージを受け取ります。
メッセージが作られるまで,またはこのキューレシーバがクローズされるまで,このメソッドは無期限にブロックされて待ち状態になります。
トランザクション内でこのメソッドが実行された場合,コミットされるまでメッセージは残ります。
コネクションが受信禁止状態の場合は,nullが返され,メッセージKFCA31307-Wが出力されます。
- 例外
-
JMSException:エラーが発生しました。
- 戻り値:該当するキューレシーバのために作られた次メッセージ
-
このキューレシーバが同時にクローズされた場合,またはコネクションが受信禁止状態の場合は,nullが返ります。
● public Message receive(long timeout) throws JMSException
指定したタイムアウト時間以内に到着した次メッセージを受け取ります。
メッセージが作られるまで,タイムアウト時間が終了するまで,またはこのキューレシーバがクローズされるまで,このメソッドはブロックされて待ち状態になります。
timeoutが0の場合は,無期限にブロックされます。
コネクションが受信禁止状態の場合は,nullが返され,メッセージKFCA31307-Wが出力されます。
- パラメタ
-
- timeout
-
タイムアウト時間(単位:ミリ秒)を指定します。
0以上の値を指定します。ただし,1〜999の値を指定すると,1秒間ブロックされて待ち状態になります。
0未満の値を指定した場合,例外JMSExceptionがスローされます。
- 例外
-
JMSException:エラーが発生しました。
- 戻り値:該当するキューレシーバのために作られた次メッセージ
-
タイムアウト時間が終了した場合,このキューレシーバが同時にクローズされた場合,またはコネクションが受信禁止状態の場合は,nullが返ります。
● public Message receiveNoWait() throws JMSException
次メッセージをすぐに利用できる場合,そのメッセージを受け取ります。
コネクションが受信禁止状態の場合は,nullが返され,メッセージKFCA31307-Wが出力されます。
- 例外
-
JMSException:エラーが発生しました。
- 戻り値:該当するキューレシーバのために作られた次メッセージ
-
次メッセージが利用できない場合,またはコネクションが受信禁止状態の場合は,nullが返ります。
● public void setMessageListener(MessageListener listener) throws JMSException
メッセージリスナを設定します。
メッセージリスナはQueueReceiverオブジェクト内で記憶されますが,実際には使用されないので,注意が必要です
- パラメタ
-
- listener
-
メッセージリスナを指定します。
- 例外
-
JMSException:エラーが発生しました。
● public Queue getQueue() throws JMSException
キューレシーバに関連づけられたキューのオブジェクトを返します。
- 例外
-
JMSException:キューハンドルが取得できませんでした。
戻り値:Queueオブジェクト