|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.activemq.ActiveMQConnectionConsumer
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.
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 |
protected MemoryBoundedQueue messageQueue
Constructor Detail |
protected ActiveMQConnectionConsumer(ActiveMQConnection theConnection, ServerSessionPool theSessionPool, ConsumerInfo theConsumerInfo, int theMaximumMessages) throws JMSException
theConnection
- theSessionPool
- theConsumerInfo
- theMaximumMessages
-
JMSException
Method Detail |
public boolean isTarget(ActiveMQMessage message)
isTarget
in interface ActiveMQMessageDispatcher
message
- the message to test
public void dispatch(ActiveMQMessage message)
dispatch
in interface ActiveMQMessageDispatcher
message
- public ActiveMQMessage receive(long timeout) throws JMSException
JMSException
public ServerSessionPool getServerSessionPool() throws JMSException
getServerSessionPool
in interface ConnectionConsumer
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 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 ConnectionConsumer
JMSException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |