|
|||||||||||
| 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,
javax.jms.ServerSessionPool theSessionPool,
ConsumerInfo theConsumerInfo,
int theMaximumMessages)
Create a ConnectionConsumer |
| Method Summary | |
void |
close()
Closes the connection consumer. |
void |
dispatch(ActiveMQMessage message)
Dispatch an ActiveMQMessage |
javax.jms.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,
javax.jms.ServerSessionPool theSessionPool,
ConsumerInfo theConsumerInfo,
int theMaximumMessages)
throws javax.jms.JMSException
theConnection - theSessionPool - theConsumerInfo - theMaximumMessages -
javax.jms.JMSException| Method Detail |
public boolean isTarget(ActiveMQMessage message)
isTarget in interface ActiveMQMessageDispatchermessage - the message to test
public void dispatch(ActiveMQMessage message)
dispatch in interface ActiveMQMessageDispatchermessage -
public ActiveMQMessage receive(long timeout)
throws javax.jms.JMSException
javax.jms.JMSException
public javax.jms.ServerSessionPool getServerSessionPool()
throws javax.jms.JMSException
getServerSessionPool in interface javax.jms.ConnectionConsumerjavax.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.ConnectionConsumerjavax.jms.JMSException
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||