Class QueueBrowserSubscription
- java.lang.Object
-
- org.apache.activemq.broker.region.AbstractSubscription
-
- org.apache.activemq.broker.region.PrefetchSubscription
-
- org.apache.activemq.broker.region.QueueSubscription
-
- org.apache.activemq.broker.region.QueueBrowserSubscription
-
- All Implemented Interfaces:
LockOwner
,Subscription
,SubscriptionRecovery
public class QueueBrowserSubscription extends QueueSubscription
-
-
Field Summary
Fields Modifier and Type Field Description protected static org.slf4j.Logger
LOG
-
Fields inherited from class org.apache.activemq.broker.region.PrefetchSubscription
dispatched, dispatchLock, pending, pendingLock, scheduler, usageManager
-
Fields inherited from class org.apache.activemq.broker.region.AbstractSubscription
broker, context, destinationFilter, destinations, info, prefetchExtension
-
Fields inherited from interface org.apache.activemq.broker.region.LockOwner
HIGH_PRIORITY_LOCK_OWNER
-
-
Constructor Summary
Constructors Constructor Description QueueBrowserSubscription(Broker broker, SystemUsage usageManager, ConnectionContext context, ConsumerInfo info)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
acknowledge(ConnectionContext context, MessageAck ack, MessageReference n)
Since we are a browser we don't really remove the message from the queue.boolean
atMax()
protected boolean
canDispatch(MessageReference node)
Use when a matched message is about to be dispatched to the client.void
decrementQueueRef()
void
destinationsAdded()
void
incrementQueueRef()
boolean
isDuplicate(MessageId messageId)
boolean
matches(MessageReference node, MessageEvaluationContext context)
Is the subscription interested in the message?List<MessageReference>
remove(ConnectionContext context, Destination destination)
The subscription will be no longer be receiving messages from the destination.void
setMaxMessages(long max)
String
toString()
-
Methods inherited from class org.apache.activemq.broker.region.QueueSubscription
destroy, getLockPriority, isDropped, isLockExclusive
-
Methods inherited from class org.apache.activemq.broker.region.PrefetchSubscription
acknowledge, add, add, assertAckMatchesDispatched, countBeforeFull, createMessageDispatch, dispatch, dispatchPending, getDequeueCounter, getDispatchedCounter, getDispatchedQueueSize, getEnqueueCounter, getInFlightSize, getMaxAuditDepth, getMaxProducersToAudit, getPending, getPendingMessageSize, getPendingQueueSize, isFull, isHighWaterMark, isLowWaterMark, isRecoveryRequired, onDispatch, processMessageDispatchNotification, pullMessage, remove, sendToDLQ, setMaxAuditDepth, setMaxProducersToAudit, setPending, setPendingBatchSize, setPrefetchSize, trackedInPendingTransaction, updateConsumerPrefetch
-
Methods inherited from class org.apache.activemq.broker.region.AbstractSubscription
addDestination, addRecoveredMessage, contractPrefetchExtension, decrementPrefetchExtension, doAddRecoveredMessage, expandPrefetchExtension, gc, getActiveMQDestination, getConsumedCount, getConsumerInfo, getContext, getCursorMemoryHighWaterMark, getDestinations, getInFlightMessageSize, getInFlightUsage, getInfo, getObjectName, getPrefetchExtension, getPrefetchSize, getSelector, getSelectorExpression, getSubscriptionStatistics, getTimeOfLastMessageAck, incrementConsumedCount, isBrowser, isSlowConsumer, isUsePrefetchExtension, isWildcard, matches, removeDestination, resetConsumedCount, setCursorMemoryHighWaterMark, setObjectName, setSelector, setSlowConsumer, setTimeOfLastMessageAck, setUsePrefetchExtension, unmatched, wakeupDestinationsForDispatch
-
-
-
-
Constructor Detail
-
QueueBrowserSubscription
public QueueBrowserSubscription(Broker broker, SystemUsage usageManager, ConnectionContext context, ConsumerInfo info) throws JMSException
- Throws:
JMSException
-
-
Method Detail
-
canDispatch
protected boolean canDispatch(MessageReference node)
Description copied from class:PrefetchSubscription
Use when a matched message is about to be dispatched to the client.- Overrides:
canDispatch
in classQueueSubscription
- Returns:
- false if the message should not be dispatched to the client (another sub may have already dispatched it for example).
-
toString
public String toString()
- Overrides:
toString
in classQueueSubscription
-
isDuplicate
public boolean isDuplicate(MessageId messageId)
-
matches
public boolean matches(MessageReference node, MessageEvaluationContext context) throws IOException
Description copied from interface:Subscription
Is the subscription interested in the message?- Specified by:
matches
in interfaceSubscription
- Overrides:
matches
in classAbstractSubscription
- Returns:
- true if matching
- Throws:
IOException
-
acknowledge
protected void acknowledge(ConnectionContext context, MessageAck ack, MessageReference n) throws IOException
Since we are a browser we don't really remove the message from the queue.- Overrides:
acknowledge
in classQueueSubscription
- Throws:
IOException
-
incrementQueueRef
public void incrementQueueRef()
-
remove
public List<MessageReference> remove(ConnectionContext context, Destination destination) throws Exception
Description copied from interface:Subscription
The subscription will be no longer be receiving messages from the destination.- Specified by:
remove
in interfaceSubscription
- Overrides:
remove
in classPrefetchSubscription
- Returns:
- a list of un-acked messages that were added to the subscription.
- Throws:
Exception
-
atMax
public boolean atMax()
-
setMaxMessages
public void setMaxMessages(long max)
-
-