インタフェース名/ | メソッド | サポート |
---|---|---|
MessageConsumer | close() | ○ |
getMessageListener() | ○ | |
getMessageSelector() | ○ | |
receive() | ○ | |
receive(long timeout) | ○(注1) | |
receiveNoWait() | ○(注2) | |
setMessageListener(MessageListener listener) | ○ | |
MessageListener | onMessage(Message message) | ○ |
MessageProducer | close() | ○ |
getDeliveryMode() | ○ | |
getDestination() | ○(注3) | |
getDisableMessageID() | ○ | |
getDisableMessageTimestamp() | ○ | |
getPriority() | ○ | |
getTimeToLive() | ○ | |
send(Destination destination, Message message) | ○(注3) | |
send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) | ○(注3) | |
send(Message message) | ○(注3) | |
send(Message message, int deliveryMode, int priority, long timeToLive) | ○(注3) | |
setDeliveryMode(int deliveryMode) | ○(注4) | |
setDisableMessageID(boolean value) | ○ | |
setDisableMessageTimestamp(boolean value) | ○ | |
setPriority(int defaultPriority) | ○ | |
setTimeToLive(long timeToLive) | ○(注5) | |
ObjectMessage | getObject() | ○ |
setObject(java.io.Serializable object) | ○ |
○:サポート
×:未サポート
注1)メッセージの待ち合わせを行う必要がない場合は、receive()メソッドではなく、receiveNoWait()メソッドを使用して、メッセージの待ち合わせを行わない運用を行ってください。
receive()メソッドを使用すると、メッセージの受信を待合わせて、受信タイムアウト時間に達すると、nullで復帰します。受信タイムアウト時間は、receive()メソッドの指定値、およびイベントチャネルの動作環境の設定値「メッセージ(イベントデータ)の待ち合わせ時間」により以下のように算出します。なお、イベントチャネル動作環境の設定方法については、“23.1.4 イベントチャネル動作環境の変更”を参照してください。
受信タイムアウト時間 = メッセージの待ち合わせ時間 × n n = receive()メソッドの指定値 / (メッセージの待ち合わせ時間 × 1000) n: 小数点以下、整数に切り上げ
例
receive()メソッドの指定値“50000ミリ秒”、メッセージの待ち合わせ時間“40秒”の場合
n = 50000 / (40 × 1000)≒ 2 (小数点以下、整数に切り上げ) 受信タイムアウト時間 = 40 × 2 = 80(秒)
注2)受信できるメッセージがない場合は、nullで即時に復帰します。
注3)JMS1.1規約で追加されました。
注4)イベントチャネルの配信モードおよび同一モードだけをサポートします。
注5)timeToLiveは、ミリ秒単位までサポートします。しかし、イベントチャネルのメッセージタイムアウト時間の精度は秒単位であるため、timeToLive値は最も近い値に丸められます。