Interface Subscription
- All Superinterfaces:
SubscriptionRecovery
- All Known Implementing Classes:
AbstractSubscription, DurableTopicSubscription, PrefetchSubscription, QueueBrowserSubscription, QueueSubscription, TopicSubscription
-
Method Summary
Modifier and TypeMethodDescriptionvoidacknowledge(ConnectionContext context, org.apache.activemq.command.MessageAck ack) Used when client acknowledge receipt of dispatched message.voidadd(ConnectionContext context, Destination destination) The subscription will be receiving messages from the destination.voidadd(org.apache.activemq.broker.region.MessageReference node) Used to add messages that match the subscription.intvoiddestroy()Called when the subscription is destroyed.voidgc()The subscription should release as may references as it can to help the garbage collector reclaim memory.longorg.apache.activemq.command.ConsumerInfoThe ConsumerInfo object that created the subscription.intlonglongintlonglongintintlongintintlongReturns the time since the last Ack message was received by this subscription.voidbooleanbooleanisFull()booleanbooleanbooleanInforms the Broker if the subscription needs to intervention to recover it's state e.g.booleanbooleanReturns true if this subscription is a Wildcard subscription.booleanmatches(org.apache.activemq.broker.region.MessageReference node, org.apache.activemq.filter.MessageEvaluationContext context) Is the subscription interested in the message?booleanmatches(org.apache.activemq.command.ActiveMQDestination destination) Is the subscription interested in messages in the destination?voidprocessMessageDispatchNotification(org.apache.activemq.command.MessageDispatchNotification mdn) Used by a Slave Broker to update dispatch infomationorg.apache.activemq.command.ResponsepullMessage(ConnectionContext context, org.apache.activemq.command.MessagePull pull) Allows a consumer to pull a message on demandList<org.apache.activemq.broker.region.MessageReference> remove(ConnectionContext context, Destination destination) The subscription will be no longer be receiving messages from the destination.voidvoidsetCursorMemoryHighWaterMark(int cursorMemoryHighWaterMark) voidsetObjectName(ObjectName objectName) Set when the subscription is registered in JMXvoidsetSelector(String selector) Attempts to change the current active selector on the subscription.voidunmatched(org.apache.activemq.broker.region.MessageReference node) voidupdateConsumerPrefetch(int newPrefetch) inform the MessageConsumer on the client to change it's prefetchMethods inherited from interface SubscriptionRecovery
addRecoveredMessage, getActiveMQDestination
-
Method Details
-
add
Used to add messages that match the subscription.- Parameters:
node-- Throws:
ExceptionInterruptedExceptionIOException
-
acknowledge
void acknowledge(ConnectionContext context, org.apache.activemq.command.MessageAck ack) throws Exception Used when client acknowledge receipt of dispatched message.- Throws:
IOExceptionException
-
pullMessage
org.apache.activemq.command.Response pullMessage(ConnectionContext context, org.apache.activemq.command.MessagePull pull) throws Exception Allows a consumer to pull a message on demand- Throws:
Exception
-
isWildcard
boolean isWildcard()Returns true if this subscription is a Wildcard subscription.- Returns:
- true if wildcard subscription.
-
matches
boolean matches(org.apache.activemq.broker.region.MessageReference node, org.apache.activemq.filter.MessageEvaluationContext context) throws IOException Is the subscription interested in the message?- Parameters:
node-context-- Returns:
- true if matching
- Throws:
IOException
-
matches
boolean matches(org.apache.activemq.command.ActiveMQDestination destination) Is the subscription interested in messages in the destination?- Parameters:
destination-- Returns:
- true if matching
-
add
The subscription will be receiving messages from the destination.- Parameters:
context-destination-- Throws:
Exception
-
remove
List<org.apache.activemq.broker.region.MessageReference> remove(ConnectionContext context, Destination destination) throws Exception The subscription will be no longer be receiving messages from the destination.- Parameters:
context-destination-- Returns:
- a list of un-acked messages that were added to the subscription.
- Throws:
Exception
-
getConsumerInfo
org.apache.activemq.command.ConsumerInfo getConsumerInfo()The ConsumerInfo object that created the subscription. -
gc
void gc()The subscription should release as may references as it can to help the garbage collector reclaim memory. -
processMessageDispatchNotification
-
getPendingQueueSize
int getPendingQueueSize()- Returns:
- number of messages pending delivery
-
getPendingMessageSize
long getPendingMessageSize()- Returns:
- size of the messages pending delivery
-
getDispatchedQueueSize
int getDispatchedQueueSize()- Returns:
- number of messages dispatched to the client
-
getDispatchedCounter
long getDispatchedCounter()- Returns:
- number of messages dispatched to the client
-
getEnqueueCounter
long getEnqueueCounter()- Returns:
- number of messages that matched the subscription
-
getDequeueCounter
long getDequeueCounter()- Returns:
- number of messages queued by the client
-
getSubscriptionStatistics
SubscriptionStatistics getSubscriptionStatistics() -
getSelector
String getSelector()- Returns:
- the JMS selector on the current subscription
-
setSelector
void setSelector(String selector) throws jakarta.jms.InvalidSelectorException, UnsupportedOperationException Attempts to change the current active selector on the subscription. This operation is not supported for persistent topics.- Throws:
jakarta.jms.InvalidSelectorExceptionUnsupportedOperationException
-
getObjectName
ObjectName getObjectName()- Returns:
- the JMX object name that this subscription was registered as if applicable
-
setObjectName
Set when the subscription is registered in JMX -
isLowWaterMark
boolean isLowWaterMark()- Returns:
- true when 60% or more room is left for dispatching messages
-
isHighWaterMark
boolean isHighWaterMark()- Returns:
- true when 10% or less room is left for dispatching messages
-
isFull
boolean isFull()- Returns:
- true if there is no space to dispatch messages
-
updateConsumerPrefetch
void updateConsumerPrefetch(int newPrefetch) inform the MessageConsumer on the client to change it's prefetch- Parameters:
newPrefetch-
-
destroy
void destroy()Called when the subscription is destroyed. -
getPrefetchSize
int getPrefetchSize()- Returns:
- the prefetch size that is configured for the subscription
-
getInFlightSize
int getInFlightSize()- Returns:
- the number of messages awaiting acknowledgement
-
getInFlightMessageSize
long getInFlightMessageSize()- Returns:
- the size in bytes of the messages awaiting acknowledgement
-
getInFlightUsage
int getInFlightUsage()- Returns:
- the in flight messages as a percentage of the prefetch size
-
isRecoveryRequired
boolean isRecoveryRequired()Informs the Broker if the subscription needs to intervention to recover it's state e.g. DurableTopicSubscriber may do- Returns:
- true if recovery required
- See Also:
-
isBrowser
boolean isBrowser()- Returns:
- true if a browser
-
countBeforeFull
int countBeforeFull()- Returns:
- the number of messages this subscription can accept before its full
-
getContext
ConnectionContext getContext() -
getCursorMemoryHighWaterMark
int getCursorMemoryHighWaterMark() -
setCursorMemoryHighWaterMark
void setCursorMemoryHighWaterMark(int cursorMemoryHighWaterMark) -
isSlowConsumer
boolean isSlowConsumer() -
unmatched
- Throws:
IOException
-
getTimeOfLastMessageAck
long getTimeOfLastMessageAck()Returns the time since the last Ack message was received by this subscription. If there has never been an ack this value should be set to the creation time of the subscription.- Returns:
- time of last received Ack message or Subscription create time if no Acks.
-
getConsumedCount
long getConsumedCount() -
incrementConsumedCount
void incrementConsumedCount() -
resetConsumedCount
void resetConsumedCount()
-