Package org.apache.activemq
Class ActiveMQConnectionConsumer
- java.lang.Object
-
- org.apache.activemq.ActiveMQConnectionConsumer
-
- All Implemented Interfaces:
javax.jms.ConnectionConsumer,ActiveMQDispatcher
public class ActiveMQConnectionConsumer extends Object implements javax.jms.ConnectionConsumer, ActiveMQDispatcher
For application servers,Connectionobjects provide a special facility for creating aConnectionConsumer(optional). The messages it is to consume are specified by aDestinationand a message selector. In addition, aConnectionConsumermust be given aServerSessionPoolto use for processing its messages.Normally, when traffic is light, a
ConnectionConsumergets aServerSessionfrom its pool, loads it with a single message, and starts it. As traffic picks up, messages can back up. If this happens, aConnectionConsumercan load eachServerSessionwith 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)
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedActiveMQConnectionConsumer(ActiveMQConnection theConnection, javax.jms.ServerSessionPool theSessionPool, ConsumerInfo theConsumerInfo)Create a ConnectionConsumer
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearMessagesInProgress(AtomicInteger transportInterruptionProcessingComplete)voidclose()Closes the connection consumer.voiddispatch(MessageDispatch messageDispatch)voiddispose()ConsumerInfogetConsumerInfo()javax.jms.ServerSessionPoolgetServerSessionPool()Gets the server session pool associated with this connection consumer.StringtoString()
-
-
-
Constructor Detail
-
ActiveMQConnectionConsumer
protected ActiveMQConnectionConsumer(ActiveMQConnection theConnection, javax.jms.ServerSessionPool theSessionPool, ConsumerInfo theConsumerInfo) throws javax.jms.JMSException
Create a ConnectionConsumer- Parameters:
theConnection-theSessionPool-theConsumerInfo-- Throws:
javax.jms.JMSException
-
-
Method Detail
-
getServerSessionPool
public javax.jms.ServerSessionPool getServerSessionPool() throws javax.jms.JMSExceptionGets the server session pool associated with this connection consumer.- Specified by:
getServerSessionPoolin interfacejavax.jms.ConnectionConsumer- Returns:
- the server session pool used by this connection consumer
- Throws:
javax.jms.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 javax.jms.JMSExceptionCloses 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:
closein interfacejavax.jms.ConnectionConsumer- Throws:
javax.jms.JMSException
-
dispose
public void dispose()
-
dispatch
public void dispatch(MessageDispatch messageDispatch)
- Specified by:
dispatchin interfaceActiveMQDispatcher
-
clearMessagesInProgress
public void clearMessagesInProgress(AtomicInteger transportInterruptionProcessingComplete)
-
getConsumerInfo
public ConsumerInfo getConsumerInfo()
-
-