Cosminexus V9 アプリケーションサーバ Cosminexus Reliable Messaging
QueueReceiver(MessageConsumer)インタフェースは,JMSクライアントがキューからメッセージを受信するために使用します。
メッセージを受信できます。メッセージセレクタを設定してQueueReceiverオブジェクトが生成されている場合は,メッセージセレクタに応じたメッセージだけを受信できます。
また,メッセージの受信処理には,次に示す種類があります。
QueueReceiverオブジェクトを生成する際に設定されたメッセージセレクタを取得します。メッセージセレクタについては,「2.6.2 メッセージセレクタ」を参照してください。
QueueReceiverオブジェクトをクローズできます。クローズによって,QueueReceiverオブジェクトに関連づけられたすべてのリソースを解放します。QueueReceiver(MessageConsumer)インタフェースのメソッドは,複数スレッドからの同時発行をJMSで禁止されています。ただし,close()メソッドだけは複数スレッドから同時発行してパラレルに実行できます。
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; }
ありません。
「(5) 形式」に記載した順序で各メソッドを説明します。
public void close() throws JMSException
メッセージコンシューマをクローズします。メッセージコンシューマには幾つかのリソースが割り当てられている場合があるため,リソースが不要になった場合はメッセージコンシューマをクローズしてください。
例外クラス | 説明 |
---|---|
JMSException | 内部エラーのためにJMSプロバイダがメッセージコンシューマをクローズする処理に失敗しました。 |
public MessageListener getMessageListener() throws JMSException
このメソッドは未サポートです。
このメソッドを発行した場合,nullを返します。
public java.lang.String getMessageSelector() throws JMSException
メッセージコンシューマのメッセージセレクタ構文を返します。
例外クラス | 説明 |
---|---|
JMSException | セッション,コネクションまたはメッセージコンシューマをクローズしている状態でメソッドを発行しました。 |
内部エラーのためにJMSプロバイダがメッセージセレクタの取得に失敗しました。 |
public Message receive() throws JMSException
メッセージコンシューマ用に生成された次のメッセージを受信します。
メソッドの発行時に,メッセージコンシューマの生成元であるコネクションがstop状態の場合はnullを返します。メソッドの実行中にコネクションがstop状態になった場合は受信待ち状態でメソッドの処理を続行します。
例外クラス | 説明 |
---|---|
JMSException | セッション,コネクションまたはメッセージコンシューマをクローズしている状態でメソッドを発行しました。 |
内部エラーのためにJMSプロバイダが次のメッセージの受信に失敗しました。 |
public Message receive(long timeout) throws JMSException
指定されたタイムアウト間隔内に到着する次のメッセージを受信します。メッセージが到着するか,タイムアウトになるか,またはメッセージコンシューマがクローズされる場合,このメソッドは終了します。timeout引数に0を指定するとタイムアウトになりません。
メッセージの発行時にメッセージコンシューマの生成元のコネクションがstop状態の場合はnullを返します。メソッドの実行中にコネクションがstop状態になった場合は受信を一時的に中断した状態でタイムアウトするまでメソッドの処理を続行します。
なお,receive()発行時に該当キュー内にメッセージがなかった場合は,その後1秒ごとのポーリングによってキュー内のメッセージの有無をチェックします。
引数名 | 説明 |
---|---|
timeout | タイムアウト値(ミリ秒) |
例外クラス | 説明 |
---|---|
JMSException | セッション,コネクションまたはメッセージコンシューマをクローズしている状態でメソッドを発行しました。 |
内部エラーのためにJMSプロバイダが次のメッセージの受信に失敗しました。 |
public Message receiveNoWait() throws JMSException
次のメッセージがすぐに利用できる場合,そのメッセージを受信します。
メッセージの発行時にメッセージコンシューマの生成元のコネクションがstop状態の場合はnullを返します。
例外クラス | 説明 |
---|---|
JMSException | セッション,コネクションまたはメッセージコンシューマをクローズしている状態でメソッドを発行しました。 |
内部エラーのためにJMSプロバイダが次のメッセージの受信に失敗しました。 |
public void setMessageListener(MessageListener listener) throws JMSException
このメソッドは未サポートです。
このメソッドで設定した値は実際には使用されません。
引数名 | 説明 |
---|---|
listener | メッセージ配送先のリスナ |
public Queue getQueue() throws JMSException
キューレシーバに関連したQueueオブジェクトを返します。
例外クラス | 説明 |
---|---|
JMSException | セッション,コネクションまたはメッセージコンシューマをクローズしている状態でメソッドを発行しました。 |
内部エラーのためにJMSプロバイダがQueueReceiverオブジェクトに関連づけられたキューの取得に失敗しました。 |
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.