com.ibm.mq.jms
Class MQMessageConsumer
- java.lang.Object
-
- com.ibm.mq.jms.MQRoot
-
- com.ibm.mq.jms.MQMessageConsumer
-
- All Implemented Interfaces:
- JmsMessageConsumer, JmsPropertyContext, JmsReadablePropertyContext, java.io.Serializable, java.lang.AutoCloseable, java.util.Map<java.lang.String,java.lang.Object>, javax.jms.MessageConsumer
- Direct Known Subclasses:
- MQQueueReceiver, MQTopicSubscriber
public class MQMessageConsumer extends MQRoot implements javax.jms.MessageConsumer, JmsMessageConsumer
MQMessageConsumer is the parent interface for all message consumers. A client uses a message consumer to receive messages from a destination.- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description void
close()
Closes the message consumer.javax.jms.Destination
getDestination()
Gets the message destination.javax.jms.MessageListener
getMessageListener()
Gets the message consumer's message listener.java.lang.String
getMessageSelector()
Gets this message consumer's message selector expression.boolean
getNoLocal()
Indicates whether locally published messages are inhibited.javax.jms.Message
receive()
Receives the next message produced for this message consumer.javax.jms.Message
receive(long timeout)
Receives the next message that arrives within the specified timeout interval.javax.jms.Message
receiveNoWait()
Receives the next message if one is immediately available.void
setMessageListener(javax.jms.MessageListener listener)
Sets the message consumer's message listener.-
Methods inherited from class com.ibm.mq.jms.MQRoot
clear, containsKey, containsValue, entrySet, equals, get, getBooleanProperty, getByteProperty, getBytesProperty, getCharProperty, getDoubleProperty, getFloatProperty, getIntProperty, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, hashCode, isEmpty, keySet, propertyExists, put, putAll, remove, setBatchProperties, setBooleanProperty, setByteProperty, setBytesProperty, setCharProperty, setDoubleProperty, setFloatProperty, setIntProperty, setLongProperty, setObjectProperty, setShortProperty, setStringProperty, size, values
-
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.ibm.msg.client.jms.JmsPropertyContext
setBatchProperties, setBooleanProperty, setByteProperty, setBytesProperty, setCharProperty, setDoubleProperty, setFloatProperty, setIntProperty, setLongProperty, setObjectProperty, setShortProperty, setStringProperty
-
Methods inherited from interface com.ibm.msg.client.jms.JmsReadablePropertyContext
getBooleanProperty, getByteProperty, getBytesProperty, getCharProperty, getDoubleProperty, getFloatProperty, getIntProperty, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, propertyExists
-
-
-
-
Method Detail
-
close
public void close() throws javax.jms.JMSException
Closes the message consumer. Because a provider can allocate some resources outside the Java Virtual Machine on behalf of message consumers, clients must close them when they are not needed. You cannot rely on garbage collection to reclaim these resources eventually because this might not occur soon enough. This call blocks until a receive() or active message listener has completed.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejavax.jms.MessageConsumer
- Throws:
javax.jms.JMSException
- if the operation fails.
-
getDestination
public javax.jms.Destination getDestination() throws javax.jms.JMSException
Gets the message destination.- Returns:
- the destination - either queue or topic.
- Throws:
javax.jms.JMSException
- if the operation fails.
-
getMessageListener
public javax.jms.MessageListener getMessageListener() throws javax.jms.JMSException
Gets the message consumer's message listener.- Specified by:
getMessageListener
in interfacejavax.jms.MessageConsumer
- Returns:
- the listener for the message consumer, or null if a listener is not set.
- Throws:
javax.jms.JMSException
- if the operation fails.
-
getMessageSelector
public java.lang.String getMessageSelector() throws javax.jms.JMSException
Gets this message consumer's message selector expression.- Specified by:
getMessageSelector
in interfacejavax.jms.MessageConsumer
- Returns:
- this message consumer's message selector.
- Throws:
javax.jms.JMSException
- if the operation fails.
-
receive
public javax.jms.Message receive() throws javax.jms.JMSException
Receives the next message produced for this message consumer.This call blocks indefinitely until a message is produced or until this message consumer is closed.
If this receive() is done within a transaction, the consumer retains the message until the transaction commits.
- Specified by:
receive
in interfacejavax.jms.MessageConsumer
- Returns:
- the next message produced for this message consumer, or null if this message consumer is concurrently closed
- Throws:
javax.jms.JMSException
- if the JMS provider fails to receive the next message due to an internal error.
-
receive
public javax.jms.Message receive(long timeout) throws javax.jms.JMSException
Receives the next message that arrives within the specified timeout interval.This call blocks until a message arrives, the timeout expires, or this message consumer is closed. A timeout of zero never expires, and the call blocks indefinitely.
- Specified by:
receive
in interfacejavax.jms.MessageConsumer
- Parameters:
timeout
- the timeout value (milliseconds)- Returns:
- the next message produced for this message consumer, or null if the timeout expires, or this message consumer is concurrently closed
- Throws:
javax.jms.JMSException
- if the JMS provider fails to receive the next message due to an internal error.
-
receiveNoWait
public javax.jms.Message receiveNoWait() throws javax.jms.JMSException
Receives the next message if one is immediately available.- Specified by:
receiveNoWait
in interfacejavax.jms.MessageConsumer
- Returns:
- the next message produced for this message consumer, or null if one is not available
- Throws:
javax.jms.JMSException
- if the JMS provider fails to receive the next message due to an internal error.
-
setMessageListener
public void setMessageListener(javax.jms.MessageListener listener) throws javax.jms.JMSException
Sets the message consumer's message listener.- Specified by:
setMessageListener
in interfacejavax.jms.MessageConsumer
- Parameters:
listener
- the messages are delivered to this listener.- Throws:
javax.jms.JMSException
- if the operation fails.- See Also:
MessageConsumer.setMessageListener(javax.jms.MessageListener)
-
getNoLocal
public boolean getNoLocal() throws javax.jms.JMSException
Indicates whether locally published messages are inhibited.- Specified by:
getNoLocal
in interfaceJmsMessageConsumer
- Returns:
- set to true if locally published messages are being inhibited.
- Throws:
javax.jms.JMSException
-
-