Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.codehaus.activemq
Class ActiveMQMessageConsumer

    java.lang.Object
      org.codehaus.activemq.ActiveMQMessageConsumer

All Implemented Interfaces:
  MessageConsumer, StatsCapable

Direct Known Subclasses:
  ActiveMQQueueBrowser, ActiveMQQueueReceiver, ActiveMQTopicSubscriber

public class ActiveMQMessageConsumer
extends Object
implements MessageConsumer, StatsCapable

A client uses a `MessageConsumer` object to receive messages from a destination. A `MessageConsumer` object is created by passing a `Destination` object to a message-consumer creation method supplied by a session.

`MessageConsumer` is the parent interface for all message consumers.

A message consumer can be created with a message selector. A message selector allows the client to restrict the messages delivered to the message consumer to those that match the selector.

A client may either synchronously receive a message consumer's messages or have the consumer asynchronously deliver them as they arrive.

For synchronous receipt, a client can request the next message from a message consumer 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 message consumer. As messages arrive at the message consumer, it delivers them by calling the `MessageListener`'s`onMessage` method.

It is a client programming error for a `MessageListener` to throw an exception.

Version:
  $Revision: 1.35 $
See Also:
  `MessageConsumer`, `QueueReceiver`, `TopicSubscriber`, `Session`

Field Summary
`protected boolean` | `browser`
`protected String` | `consumerId`
`protected String` | `consumerName`
`protected int` | `consumerNumber`
`protected ActiveMQDestination` | `destination`
`protected MemoryBoundedQueue` | `messageQueue`
`protected String` | `messageSelector`
`protected boolean` | `noLocal`
`protected int` | `prefetchNumber`
`protected ActiveMQSession` | `session`
`protected long` | `startTime`

Constructor Summary
`protected` | `ActiveMQMessageConsumer(ActiveMQSession theSession, ActiveMQDestination dest, String name, String selector, int cnum, int prefetch, boolean noLocalValue, boolean browserValue)` Create a MessageConsumer

Method Summary
`protected void` | `checkClosed()`
`protected void` | `clearMessagesInProgress()`
`void` | `close()` Closes the message consumer.
`protected String` | `getConsumerId()`
`protected String` | `getConsumerName()`
`protected int` | `getConsumerNumber()`
`JMSConsumerStatsImpl` | `getConsumerStats()`
`protected ActiveMQDestination` | `getDestination()`
`MessageListener` | `getMessageListener()` Gets the message consumer's `MessageListener`.
`String` | `getMessageSelector()` Gets this message consumer's message selector expression.
`int` | `getPrefetchNumber()`
`protected long` | `getStartTime()`
`Stats` | `getStats()`
`protected boolean` | `isBrowser()` Retrive is a browser
`boolean` | `isDurableSubscriber()`
`protected boolean` | `isNoLocal()`
`protected void` | `processMessage(ActiveMQMessage message)` Process a Message - passing either to the queue or message listener
`Message` | `receive()` Receives the next message produced for this message consumer.
`Message` | `receive(long timeout)` Receives the next message that arrives within the specified timeout interval.
`Message` | `receiveNoWait()` Receives the next message if one is immediately available.
`protected void` | `setBrowser(boolean value)` Set true if only a Browser
`protected void` | `setConsumerId(String consumerId)`
`protected void` | `setConsumerName(String value)` Set the name of the Consumer - used for durable subscribers
`protected void` | `setConsumerNumber(int value)` Set the locally unique consumer number
`void` | `setMessageListener(MessageListener listener)` Sets the message consumer's `MessageListener`.
`void` | `setPrefetchNumber(int prefetchNumber)`
`String` | `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### session

    protected ActiveMQSession session

### consumerId

    protected String consumerId

### messageQueue

    protected MemoryBoundedQueue messageQueue

### messageSelector

    protected String messageSelector

### consumerName

    protected String consumerName

### destination

    protected ActiveMQDestination destination

### consumerNumber

    protected int consumerNumber

### prefetchNumber

    protected int prefetchNumber

### startTime

    protected long startTime

### noLocal

    protected boolean noLocal

### browser

    protected boolean browser

Constructor Detail

### ActiveMQMessageConsumer

    protected ActiveMQMessageConsumer(ActiveMQSession theSession,
                                      ActiveMQDestination dest,
                                      String name,
                                      String selector,
                                      int cnum,
                                      int prefetch,
                                      boolean noLocalValue,
                                      boolean browserValue)
                               throws JMSException

  Create a MessageConsumer

Parameters:
  `theSession` -
  `dest` -
  `name` -
  `selector` -
  `cnum` -
  `prefetch` -
  `noLocalValue` -
  `browserValue` -
Throws:
  `JMSException`

Method Detail

### getStats

    public Stats getStats()

  Specified by:
    `getStats` in interface `StatsCapable`
  Returns:
    Stats for this MessageConsumer

### getConsumerStats

    public JMSConsumerStatsImpl getConsumerStats()

  Returns:
    Stats for this MessageConsumer

### toString

    public String toString()

  Returns:
    pretty print of this consumer

### getPrefetchNumber

    public int getPrefetchNumber()

  Returns:
    Returns the prefetchNumber.

### setPrefetchNumber

    public void setPrefetchNumber(int prefetchNumber)

  Parameters:
    `prefetchNumber` - The prefetchNumber to set.

### getMessageSelector

    public String getMessageSelector()
                              throws JMSException

  Gets this message consumer's message selector expression.

  Specified by:
    `getMessageSelector` in interface `MessageConsumer`
  Returns:
    this message consumer's message selector, or null if no message selector exists for the message consumer (that is, if the message selector was not set or was set to null or the empty string)
  Throws:
    `JMSException` - if the JMS provider fails to receive the next message due to some internal error.

### getMessageListener

    public MessageListener getMessageListener()
                                       throws JMSException

  Gets the message consumer's `MessageListener`.

  Specified by:
    `getMessageListener` in interface `MessageConsumer`
  Returns:
    the listener for the message consumer, or null if no listener is set
  Throws:
    `JMSException` - if the JMS provider fails to get the message listener due to some internal error.
  See Also:
    `MessageConsumer.setMessageListener(javax.jms.MessageListener)`

### setMessageListener

    public void setMessageListener(MessageListener listener)
                            throws JMSException

  Sets the message consumer's `MessageListener`.

  Setting the message listener to null is the equivalent of unsetting the message listener for the message consumer.

  The effect of calling `MessageConsumer.setMessageListener` while messages are being consumed by an existing listener or the consumer is being used to consume messages synchronously is undefined.

  Specified by:
    `setMessageListener` in interface `MessageConsumer`
  Parameters:
    `listener` - the listener to which the messages are to be delivered
  Throws:
    `JMSException` - if the JMS provider fails to receive the next message due to some internal error.
  See Also:
    `MessageConsumer.getMessageListener()`

### receive

    public Message receive()
                    throws 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 interface `MessageConsumer`
  Returns:
    the next message produced for this message consumer, or null if this message consumer is concurrently closed
  Throws:
    `JMSException`

### receive

    public Message receive(long timeout)
                    throws 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 interface `MessageConsumer`
  Parameters:
    `timeout` - the timeout value (in milliseconds)
  Returns:
    the next message produced for this message consumer, or null if the timeout expires or this message consumer is concurrently closed
  Throws:
    `JMSException`

### receiveNoWait

    public Message receiveNoWait()
                          throws JMSException

  Receives the next message if one is immediately available.

  Specified by:
    `receiveNoWait` in interface `MessageConsumer`
  Returns:
    the next message produced for this message consumer, or null if one is not available
  Throws:
    `JMSException` - if the JMS provider fails to receive the next message due to some internal error.

### close

    public void close()
               throws JMSException

  Closes the message consumer.

  Since a provider may allocate some resources on behalf of a `MessageConsumer` outside the Java virtual machine, clients should close them when they are not needed. Relying on garbage collection to eventually reclaim these resources may not be timely enough.

  This call blocks until a `receive` or message listener in progress has completed. A blocked message consumer `receive` call returns null when this message consumer is closed.

  Specified by:
    `close` in interface `MessageConsumer`
  Throws:
    `JMSException` - if the JMS provider fails to close the consumer due to some internal error.

### isDurableSubscriber

    public boolean isDurableSubscriber()

  Returns:
    true if this is a durable topic subscriber

### checkClosed

    protected void checkClosed()
                        throws IllegalStateException

  Throws:
    `IllegalStateException`

### processMessage

    protected void processMessage(ActiveMQMessage message)

  Process a Message - passing either to the queue or message listener

  Parameters:
    `message` -

### getConsumerId

    protected String getConsumerId()

  Returns:
    Returns the consumerId.

### setConsumerId

    protected void setConsumerId(String consumerId)

  Parameters:
    `consumerId` - The consumerId to set.

### getConsumerName

    protected String getConsumerName()

  Returns:
    the consumer name - used for durable consumers

### setConsumerName

    protected void setConsumerName(String value)

  Set the name of the Consumer - used for durable subscribers

  Parameters:
    `value` -

### getConsumerNumber

    protected int getConsumerNumber()

  Returns:
    the locally unique Consumer Number

### setConsumerNumber

    protected void setConsumerNumber(int value)

  Set the locally unique consumer number

  Parameters:
    `value` -

### isNoLocal

    protected boolean isNoLocal()

  Returns:
    true if this consumer does not accept locally produced messages

### isBrowser

    protected boolean isBrowser()

  Retrive is a browser

  Returns:
    true if a browser

### setBrowser

    protected void setBrowser(boolean value)

  Set true if only a Browser

  Parameters:
    `value` -
  See Also:
    `ActiveMQQueueBrowser`

### getDestination

    protected ActiveMQDestination getDestination()

  Returns:
    ActiveMQDestination

### getStartTime

    protected long getStartTime()

  Returns:
    the startTime

### clearMessagesInProgress

    protected void clearMessagesInProgress()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004 Protique, Ltd.. All Rights Reserved.