public class ActiveMQConnectionConsumer extends Object implements javax.jms.ConnectionConsumer, ActiveMQDispatcher
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.
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)
Modifier | Constructor and Description |
---|---|
protected |
ActiveMQConnectionConsumer(ActiveMQConnection theConnection,
javax.jms.ServerSessionPool theSessionPool,
ConsumerInfo theConsumerInfo)
Create a ConnectionConsumer
|
Modifier and Type | Method and Description |
---|---|
void |
clearMessagesInProgress(AtomicInteger transportInterruptionProcessingComplete) |
void |
close()
Closes the connection consumer.
|
void |
dispatch(MessageDispatch messageDispatch) |
void |
dispose() |
ConsumerInfo |
getConsumerInfo() |
javax.jms.ServerSessionPool |
getServerSessionPool()
Gets the server session pool associated with this connection consumer.
|
String |
toString() |
protected ActiveMQConnectionConsumer(ActiveMQConnection theConnection, javax.jms.ServerSessionPool theSessionPool, ConsumerInfo theConsumerInfo) throws javax.jms.JMSException
theConnection
- theSessionPool
- theConsumerInfo
- javax.jms.JMSException
public javax.jms.ServerSessionPool getServerSessionPool() throws javax.jms.JMSException
getServerSessionPool
in interface javax.jms.ConnectionConsumer
javax.jms.JMSException
- if the JMS provider fails to get the server session
pool associated with this consumer due to some internal
error.public void close() throws javax.jms.JMSException
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.
close
in interface javax.jms.ConnectionConsumer
javax.jms.JMSException
public void dispose()
public void dispatch(MessageDispatch messageDispatch)
dispatch
in interface ActiveMQDispatcher
public void clearMessagesInProgress(AtomicInteger transportInterruptionProcessingComplete)
public ConsumerInfo getConsumerInfo()
Copyright © 2005–2020 The Apache Software Foundation. All rights reserved.