JMSConsumer object to receive messages
from a queue or topic. A JMSConsumer object may be created either created by passing a Queue or
Topic object to one of the createConsumer methods on a JMSContext. or by passing a
Topic object to one of the createSharedConsumer or createDurableConsumer methods on a
JMSContext.
A JMSConsumer can be created with a message selector. A message selector allows the client to restrict the
messages delivered to the JMSConsumer to those that match the selector.
A client may either synchronously receive a JMSConsumer's messages or have the JMSConsumer
asynchronously deliver them as they arrive.
For synchronous receipt, a client can request the next message from a JMSConsumer using one of its
receive methods. There are several variations of receive that allow a client to poll or wait for the
next message.
For asynchronous delivery, a client can register a MessageListener object with a JMSConsumer. As
messages arrive at the JMSConsumer, it delivers them by calling the MessageListener 's
onMessage method.
It is a client programming error for a MessageListener to throw an exception.
jakarta.jms.JMSContext
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| public MessageListener | Returns: theJMSConsumer's MessageListener, or null if one was not setGets the |
| public String | Returns: thisJMSConsumer's message selector, or null if no message selector exists for the
JMSConsumer (that is, if the message selector was not set or was set to null or the empty string)Gets this |
| public Message | Returns: the next message produced for thisJMSConsumer, or null if this JMSConsumer is concurrently
closedReceives the next message produced for this |
| public Message | Returns: the next message produced for thisJMSConsumer, or null if the timeout expires or this
JMSConsumer is concurrently closedthe timeout value (in milliseconds) timeout)Receives the next message that arrives within the specified timeout interval. |
| public < The type of the message body T> T | Returns: the body of the next message produced for thisJMSConsumer, or null if this JMSConsumer is
concurrently closedThe type to which the body of the next message should be assigned. c)If the next message is expected to be a TextMessage then this should be set to String.class or
another class to which a String is assignable.If the next message is expected to be a ObjectMessage then this should be set to
java.io.Serializable.class or another class to which the body is assignable. If the next message is expected to be a MapMessage then this should be set to java.util.Map.class (or
java.lang.Object.class).If the next message is expected to be a BytesMessage then this should be set to byte[].class (or
java.lang.Object.class).Receives the next message produced for this |
| public < The message body type T> T | Returns: the body of the next message produced for thisJMSConsumer, or null if the timeout expires or this
JMSConsumer is concurrently closedThe type to which the body of the next message should be assigned. c, long If the next message is expected to be a TextMessage then this should be set to String.class or
another class to which a String is assignable.If the next message is expected to be a ObjectMessage then this should be set to
java.io.Serializable.class or another class to which the body is assignable. If the next message is expected to be a MapMessage then this should be set to java.util.Map.class (or
java.lang.Object.class).If the next message is expected to be a BytesMessage then this should be set to byte[].class (or
java.lang.Object.class).The maximum amount of time this method blocks. Zero means blocking indefinitely. timeout)Receives the next message produced for this |
| public < The type of the message body T> T | Returns: the body of the next message produced for thisJMSConsumer, or null if one is not immediately
available or this JMSConsumer is concurrently closedThe type to which the body of the next message should be assigned. c)If the next message is expected to be a TextMessage then this should be set to String.class or
another class to which a String is assignable.If the next message is expected to be a ObjectMessage then this should be set to
java.io.Serializable.class or another class to which the body is assignable. If the next message is expected to be a MapMessage then this should be set to java.util.Map.class (or
java.lang.Object.class).If the next message is expected to be a BytesMessage then this should be set to byte[].class (or
java.lang.Object.class).Receives the next message produced for this |
| public Message | Returns: the next message produced for thisJMSConsumer, or null if one is not availableReceives the next message if one is immediately available. |
| public void | setMessageListener(MessageListener
the listener to which the messages are to be delivered listener)Sets the |
| close | back to summary |
|---|---|
| public void close() Redeclares java. Closes the
Since a provider may allocate some resources on behalf of a
This call will block until a If this method is called whilst a message listener is in progress in another thread then it will block until the message listener has completed.
This method may be called from a message listener's
This method is the only
| |
| getMessageListener | back to summary |
|---|---|
| public MessageListener getMessageListener() throws JMSRuntimeException Gets the
This method must not be used in a Jakarta EE web or EJB application. Doing so may cause a
| |
| getMessageSelector | back to summary |
|---|---|
| public String getMessageSelector() Gets this
| |
| receive | back to summary |
|---|---|
| public Message receive() Receives the next message produced for this
This call blocks indefinitely until a message is produced or until this
If this
| |
| receive | back to summary |
|---|---|
| public Message receive(long timeout) Receives the next message that arrives within the specified timeout interval.
This call blocks until a message arrives, the timeout expires, or this
| |
| receiveBody | back to summary |
|---|---|
| public <T> T receiveBody(Class<T> c) Receives the next message produced for this
This method does not give access to the message headers or properties (such as the
This call blocks indefinitely until a message is produced or until this
If this method is called within a transaction, the
The result of this method throwing a
| |
| receiveBody | back to summary |
|---|---|
| public <T> T receiveBody(Class<T> c, long timeout) Receives the next message produced for this
This method does not give access to the message headers or properties (such as the
This call blocks until a message arrives, the timeout expires, or this
If this method is called within a transaction, the
The result of this method throwing a
| |
| receiveBodyNoWait | back to summary |
|---|---|
| public <T> T receiveBodyNoWait(Class<T> c) Receives the next message produced for this
This method does not give access to the message headers or properties (such as the If a message is not immediately available null is returned.
If this method is called within a transaction, the
The result of this method throwing a
| |
| receiveNoWait | back to summary |
|---|---|
| public Message receiveNoWait() Receives the next message if one is immediately available.
| |
| setMessageListener | back to summary |
|---|---|
| public void setMessageListener(MessageListener listener) throws JMSRuntimeException Sets the
Setting the
The effect of calling this method while messages are being consumed by an existing listener or the
This method must not be used in a Jakarta EE web or EJB application. Doing so may cause a
| |