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 ActiveMQConnectionConsumer

    java.lang.Object
      org.codehaus.activemq.ActiveMQConnectionConsumer

All Implemented Interfaces:
  ActiveMQMessageDispatcher, ConnectionConsumer

public class ActiveMQConnectionConsumer
extends Object
implements ConnectionConsumer, ActiveMQMessageDispatcher

For application servers, `Connection` objects provide a special facility for creating a `ConnectionConsumer` (optional). The messages it is to consume are specified by a `Destination` and a message selector. In addition, a `ConnectionConsumer` must be given a `ServerSessionPool` to use for processing its messages.

Normally, when traffic is light, a `ConnectionConsumer` gets a `ServerSession` from its pool, loads it with a single message, and starts it. As traffic picks up, messages can back up. If this happens, a `ConnectionConsumer` can load each `ServerSession` with more than one message. This reduces the thread context switches and minimizes resource use at the expense of some serialization of message processing.

See Also:
  `Connection.createConnectionConsumer(javax.jms.Destination, java.lang.String, javax.jms.ServerSessionPool, int)`, `Connection.createDurableConnectionConsumer(javax.jms.Topic, java.lang.String, java.lang.String, javax.jms.ServerSessionPool, int)`, `QueueConnection.createConnectionConsumer(javax.jms.Queue, java.lang.String, javax.jms.ServerSessionPool, int)`, `TopicConnection.createConnectionConsumer(javax.jms.Topic, java.lang.String, javax.jms.ServerSessionPool, int)`, `TopicConnection.createDurableConnectionConsumer(javax.jms.Topic, java.lang.String, java.lang.String, javax.jms.ServerSessionPool, int)`

Field Summary
`protected MemoryBoundedQueue` | `messageQueue`

Constructor Summary
`protected` | `ActiveMQConnectionConsumer(ActiveMQConnection theConnection, ServerSessionPool theSessionPool, ConsumerInfo theConsumerInfo, int theMaximumMessages)` Create a ConnectionConsumer

Method Summary
`void` | `close()` Closes the connection consumer.
`void` | `dispatch(ActiveMQMessage message)` Dispatch an ActiveMQMessage
`ServerSessionPool` | `getServerSessionPool()` Gets the server session pool associated with this connection consumer.
`boolean` | `isTarget(ActiveMQMessage message)` Tests to see if the Message Dispatcher is a target for this message
`ActiveMQMessage` | `receive(long timeout)` Receives the next message that arrives within the specified timeout interval.

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

Field Detail

### messageQueue

    protected MemoryBoundedQueue messageQueue

Constructor Detail

### ActiveMQConnectionConsumer

    protected ActiveMQConnectionConsumer(ActiveMQConnection theConnection,
                                         ServerSessionPool theSessionPool,
                                         ConsumerInfo theConsumerInfo,
                                         int theMaximumMessages)
                                  throws JMSException

  Create a ConnectionConsumer

Parameters:
  `theConnection` -
  `theSessionPool` -
  `theConsumerInfo` -
  `theMaximumMessages` -
Throws:
  `JMSException`

Method Detail

### isTarget

    public boolean isTarget(ActiveMQMessage message)

  Tests to see if the Message Dispatcher is a target for this message

  Specified by:
    `isTarget` in interface `ActiveMQMessageDispatcher`
  Parameters:
    `message` - the message to test
  Returns:
    true if the Message Dispatcher can dispatch the message

### dispatch

    public void dispatch(ActiveMQMessage message)

  Dispatch an ActiveMQMessage

  Specified by:
    `dispatch` in interface `ActiveMQMessageDispatcher`
  Parameters:
    `message` -

### receive

    public ActiveMQMessage receive(long timeout)
                            throws JMSException

  Receives the next message that arrives within the specified timeout interval.

  Throws:
    `JMSException`

### getServerSessionPool

    public ServerSessionPool getServerSessionPool()
                                           throws JMSException

  Gets the server session pool associated with this connection consumer.

  Specified by:
    `getServerSessionPool` in interface `ConnectionConsumer`
  Returns:
    the server session pool used by this connection consumer
  Throws:
    `JMSException` - if the JMS provider fails to get the server session pool associated with this consumer due to some internal error.

### close

    public void close()
               throws JMSException

  Closes the connection consumer.

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

  Specified by:
    `close` in interface `ConnectionConsumer`
  Throws:
    `JMSException`

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.