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が確保した資源を解放するために,資源(キュー)をクローズします。
● public MessageListener getMessageListener() throws JMSException
メッセージリスナを返します。
● public java.lang.String getMessageSelector() throws JMSException
メッセージセレクタを返します。
● public Message receive() throws JMSException
該当するキューレシーバのために作られた,次メッセージを受け取ります。
メッセージが作られるまで,またはこのキューレシーバがクローズされるまで,このメソッドは無期限にブロックされて待ち状態になります。
トランザクション内でこのメソッドが実行された場合,コミットされるまでメッセージは残ります。
コネクションが受信禁止状態の場合は,nullが返され,メッセージKFCA31307-Wが出力されます。
● public Message receive(long timeout) throws JMSException
指定したタイムアウト時間以内に到着した次メッセージを受け取ります。
メッセージが作られるまで,タイムアウト時間が終了するまで,またはこのキューレシーバがクローズされるまで,このメソッドはブロックされて待ち状態になります。
timeoutが0の場合は,無期限にブロックされます。
コネクションが受信禁止状態の場合は,nullが返され,メッセージKFCA31307-Wが出力されます。
● public Message receiveNoWait() throws JMSException
次メッセージをすぐに利用できる場合,そのメッセージを受け取ります。
コネクションが受信禁止状態の場合は,nullが返され,メッセージKFCA31307-Wが出力されます。
● public void setMessageListener(MessageListener listener) throws JMSException
メッセージリスナを設定します。
メッセージリスナはQueueReceiverオブジェクト内で記憶されますが,実際には使用されないので,注意が必要です
● public Queue getQueue() throws JMSException
キューレシーバに関連づけられたキューのオブジェクトを返します。