Package org.objectweb.joram.client.jms
Class MultiSessionConsumer
- java.lang.Object
-
- org.objectweb.joram.client.jms.MessageConsumerListener
-
- org.objectweb.joram.client.jms.MultiSessionConsumer
-
- All Implemented Interfaces:
ConnectionConsumer,ReplyListener
public final class MultiSessionConsumer extends MessageConsumerListener implements ConnectionConsumer
The MultiSessionConsumer is threaded (see MessageDispatcher) because the session pool can hang if there is no more available ServerSession.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classMultiSessionConsumer.MessageDispatcher-
Nested classes/interfaces inherited from class org.objectweb.joram.client.jms.MessageConsumerListener
MessageConsumerListener.Status
-
-
Field Summary
Fields Modifier and Type Field Description private Connectioncnxprivate static org.objectweb.util.monolog.api.Loggerloggerprivate intmaxMsgsprivate MultiSessionConsumer.MessageDispatchermsgDispatcherprivate intnbActivatedListenersNumber of simultaneously activated listeners.private fr.dyade.aaa.common.QueuerepliesInprivate ServerSessionPoolserverSessionPool
-
Constructor Summary
Constructors Constructor Description MultiSessionConsumer(boolean queueMode, boolean durable, String selector, String destName, String targetName, ServerSessionPool sessionPool, int queueMessageReadMax, int topicActivationThreshold, int topicPassivationThreshold, int topicAckBufferMax, RequestMultiplexer reqMultiplexer, Connection connection, int maxMessages)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancheckSessionThread()voidclose()Called by Session.ServerSessionPoolgetServerSessionPool()voidonMessage(Message msg, MessageListener listener, int ackMode)voidpushMessages(org.objectweb.joram.shared.client.ConsumerMessages cm)Pushes the received messages.-
Methods inherited from class org.objectweb.joram.client.jms.MessageConsumerListener
ack, activateListener, activateMessageInput, addMessageListener, errorReceived, getDestName, getMessageListener, getMessageListenersSize, getQueueMode, getStatus, getTargetName, isClosed, onMessage, passivateMessageInput, removeMessageListener, replyAborted, replyReceived, setStatus, start
-
-
-
-
Field Detail
-
logger
private static final org.objectweb.util.monolog.api.Logger logger
-
serverSessionPool
private ServerSessionPool serverSessionPool
-
cnx
private Connection cnx
-
maxMsgs
private int maxMsgs
-
repliesIn
private fr.dyade.aaa.common.Queue repliesIn
-
nbActivatedListeners
private int nbActivatedListeners
Number of simultaneously activated listeners.
-
msgDispatcher
private MultiSessionConsumer.MessageDispatcher msgDispatcher
-
-
Constructor Detail
-
MultiSessionConsumer
MultiSessionConsumer(boolean queueMode, boolean durable, String selector, String destName, String targetName, ServerSessionPool sessionPool, int queueMessageReadMax, int topicActivationThreshold, int topicPassivationThreshold, int topicAckBufferMax, RequestMultiplexer reqMultiplexer, Connection connection, int maxMessages)- Parameters:
consumer-listener-ackMode-queueMessageReadMax-topicActivationThreshold-topicPassivationThreshold-topicAckBufferMax-reqMultiplexer-
-
-
Method Detail
-
pushMessages
public void pushMessages(org.objectweb.joram.shared.client.ConsumerMessages cm) throws JMSExceptionDescription copied from class:MessageConsumerListenerPushes the received messages. Currently two behaviors: 1- SingleSessionConsumer pushes the message in a single session (standard JMS) 2- MultiSessionConsumer pushes the message in several session (from a session pool)- Specified by:
pushMessagesin classMessageConsumerListener- Throws:
JMSException
-
getServerSessionPool
public ServerSessionPool getServerSessionPool() throws JMSException
- Specified by:
getServerSessionPoolin interfaceConnectionConsumer- Throws:
JMSException
-
close
public void close() throws JMSExceptionDescription copied from class:MessageConsumerListenerCalled by Session.- Specified by:
closein interfaceConnectionConsumer- Overrides:
closein classMessageConsumerListener- Throws:
JMSException
-
onMessage
public void onMessage(Message msg, MessageListener listener, int ackMode) throws JMSException
- Specified by:
onMessagein classMessageConsumerListener- Throws:
JMSException
-
checkSessionThread
protected boolean checkSessionThread()
- Specified by:
checkSessionThreadin classMessageConsumerListener- Returns:
- true if the currentThread is the SessionThread.
-
-