Class TopicSubscription

    • Field Detail

      • usageManager

        protected final SystemUsage usageManager
      • maxProducersToAudit

        protected int maxProducersToAudit
      • maxAuditDepth

        protected int maxAuditDepth
      • enableAudit

        protected boolean enableAudit
      • audit

        protected org.apache.activemq.ActiveMQMessageAudit audit
      • active

        protected boolean active
      • discarding

        protected boolean discarding
      • dispatchLock

        protected final Object dispatchLock
      • dispatched

        protected final List<org.apache.activemq.broker.region.TopicSubscription.DispatchedNode> dispatched
      • currentDispatchedCount

        protected final AtomicInteger currentDispatchedCount
    • Method Detail

      • removeExpiredMessages

        protected void removeExpiredMessages()
                                      throws IOException
        Discard any expired messages from the matched list. Called from a synchronized block.
        Throws:
        IOException
      • processMessageDispatchNotification

        public void processMessageDispatchNotification​(org.apache.activemq.command.MessageDispatchNotification mdn)
        Description copied from interface: Subscription
        Used by a Slave Broker to update dispatch infomation
      • pullMessage

        public org.apache.activemq.command.Response pullMessage​(ConnectionContext context,
                                                                org.apache.activemq.command.MessagePull pull)
                                                         throws Exception
        Description copied from interface: Subscription
        Allows a consumer to pull a message on demand
        Throws:
        Exception
      • getPendingQueueSize

        public int getPendingQueueSize()
        Returns:
        number of messages pending delivery
      • getPendingMessageSize

        public long getPendingMessageSize()
        Returns:
        size of the messages pending delivery
      • getDispatchedQueueSize

        public int getDispatchedQueueSize()
        Returns:
        number of messages dispatched to the client
      • getMaximumPendingMessages

        public int getMaximumPendingMessages()
      • getDispatchedCounter

        public long getDispatchedCounter()
        Returns:
        number of messages dispatched to the client
      • getEnqueueCounter

        public long getEnqueueCounter()
        Returns:
        number of messages that matched the subscription
      • getDequeueCounter

        public long getDequeueCounter()
        Returns:
        number of messages queued by the client
      • discarded

        public int discarded()
        Returns:
        the number of messages discarded due to being a slow consumer
      • matched

        public int matched()
        Returns:
        the number of matched messages (messages targeted for the subscription but not yet able to be dispatched due to the prefetch buffer being full).
      • setMaximumPendingMessages

        public void setMaximumPendingMessages​(int maximumPendingMessages)
        Sets the maximum number of pending messages that can be matched against this consumer before old messages are discarded.
      • setMessageEvictionStrategy

        public void setMessageEvictionStrategy​(MessageEvictionStrategy messageEvictionStrategy)
        Sets the eviction strategy used to decide which message to evict when the slow consumer needs to discard messages
      • getMaxProducersToAudit

        public int getMaxProducersToAudit()
      • setMaxProducersToAudit

        public void setMaxProducersToAudit​(int maxProducersToAudit)
      • getMaxAuditDepth

        public int getMaxAuditDepth()
      • setMaxAuditDepth

        public void setMaxAuditDepth​(int maxAuditDepth)
      • isEnableAudit

        public boolean isEnableAudit()
      • setEnableAudit

        public void setEnableAudit​(boolean enableAudit)
      • isFull

        public boolean isFull()
        Returns:
        true if there is no space to dispatch messages
      • getInFlightSize

        public int getInFlightSize()
        Returns:
        the number of messages awaiting acknowledgement
      • isLowWaterMark

        public boolean isLowWaterMark()
        Returns:
        true when 60% or more room is left for dispatching messages
      • isHighWaterMark

        public boolean isHighWaterMark()
        Returns:
        true when 10% or less room is left for dispatching messages
      • setMemoryUsageHighWaterMark

        public void setMemoryUsageHighWaterMark​(int memoryUsageHighWaterMark)
        Parameters:
        memoryUsageHighWaterMark - the memoryUsageHighWaterMark to set
      • getMemoryUsageHighWaterMark

        public int getMemoryUsageHighWaterMark()
        Returns:
        the memoryUsageHighWaterMark
      • getUsageManager

        public SystemUsage getUsageManager()
        Returns:
        the usageManager
      • setMatched

        public void setMatched​(PendingMessageCursor matched)
        Parameters:
        matched - the matched to set
      • updateConsumerPrefetch

        public void updateConsumerPrefetch​(int newPrefetch)
        inform the MessageConsumer on the client to change it's prefetch
        Parameters:
        newPrefetch -
      • destroy

        public void destroy()
        Description copied from interface: Subscription
        Called when the subscription is destroyed.
      • isUseTopicSubscriptionInflightStats

        public boolean isUseTopicSubscriptionInflightStats()
      • setUseTopicSubscriptionInflightStats

        public void setUseTopicSubscriptionInflightStats​(boolean useTopicSubscriptionInflightStats)