Package org.ow2.joram.jakarta.jms
Class MultiSessionConsumer
- java.lang.Object
-
- org.ow2.joram.jakarta.jms.MessageConsumerListener
-
- org.ow2.joram.jakarta.jms.MultiSessionConsumer
-
- All Implemented Interfaces:
jakarta.jms.ConnectionConsumer,ReplyListener
public final class MultiSessionConsumer extends MessageConsumerListener implements jakarta.jms.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.ow2.joram.jakarta.jms.MessageConsumerListener
MessageConsumerListener.Status
-
-
Field Summary
Fields Modifier and Type Field Description private Connectioncnxprivate static booleanDEBUGprivate static Loggerloggerprivate intmaxMsgsprivate MultiSessionConsumer.MessageDispatchermsgDispatcherprivate intnbActivatedListenersNumber of simultaneously activated listeners.private QueuerepliesInprivate jakarta.jms.ServerSessionPoolserverSessionPool
-
Constructor Summary
Constructors Constructor Description MultiSessionConsumer(boolean queueMode, boolean durable, String selector, String destName, String targetName, jakarta.jms.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.jakarta.jms.ServerSessionPoolgetServerSessionPool()voidonMessage(Message msg, jakarta.jms.MessageListener listener, int ackMode)voidpushMessages(ConsumerMessages cm)Pushes the received messages.-
Methods inherited from class org.ow2.joram.jakarta.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 Logger logger
-
DEBUG
private static final boolean DEBUG
-
serverSessionPool
private jakarta.jms.ServerSessionPool serverSessionPool
-
cnx
private Connection cnx
-
maxMsgs
private int maxMsgs
-
repliesIn
private 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, jakarta.jms.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(ConsumerMessages cm) throws jakarta.jms.JMSException
Description 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:
jakarta.jms.JMSException
-
getServerSessionPool
public jakarta.jms.ServerSessionPool getServerSessionPool() throws jakarta.jms.JMSException- Specified by:
getServerSessionPoolin interfacejakarta.jms.ConnectionConsumer- Throws:
jakarta.jms.JMSException
-
close
public void close() throws jakarta.jms.JMSExceptionDescription copied from class:MessageConsumerListenerCalled by Session.- Specified by:
closein interfacejakarta.jms.ConnectionConsumer- Overrides:
closein classMessageConsumerListener- Throws:
jakarta.jms.JMSException
-
onMessage
public void onMessage(Message msg, jakarta.jms.MessageListener listener, int ackMode) throws jakarta.jms.JMSException
- Specified by:
onMessagein classMessageConsumerListener- Throws:
jakarta.jms.JMSException
-
checkSessionThread
protected boolean checkSessionThread()
- Specified by:
checkSessionThreadin classMessageConsumerListener- Returns:
- true if the currentThread is the SessionThread.
-
-