Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.artemis.api.core.management;
import javax.management.MBeanOperationInfo;
import javax.management.openmbean.CompositeData;
import java.util.Map;
/**
* A QueueControl is used to manage a queue.
*/
public interface QueueControl {
String MESSAGE_COUNT_DESCRIPTION = "number of messages currently in this queue (includes scheduled, paged, and in-delivery messages)";
String DURABLE_MESSAGE_COUNT_DESCRIPTION = "number of durable messages currently in this queue (includes scheduled, paged, and in-delivery messages)";
String PERSISTENT_SIZE_DESCRIPTION = "persistent size of all messages (including durable and non-durable) currently in this queue (includes scheduled, paged, and in-delivery messages)";
String DURABLE_PERSISTENT_SIZE_DESCRIPTION = "persistent size of durable messages currently in this queue (includes scheduled, paged, and in-delivery messages)";
String SCHEDULED_MESSAGE_COUNT_DESCRIPTION = "number of scheduled messages in this queue";
String DURABLE_SCHEDULED_MESSAGE_COUNT_DESCRIPTION = "number of durable scheduled messages in this queue";
String SCHEDULED_SIZE_DESCRIPTION = "persistent size of scheduled messages in this queue";
String DURABLE_SCHEDULED_SIZE_DESCRIPTION = "persistent size of durable scheduled messages in this queue";
String DELIVERING_MESSAGE_COUNT_DESCRIPTION = "number of messages that this queue is currently delivering to its consumers";
String DURABLE_DELIVERING_MESSAGE_COUNT_DESCRIPTION = "number of durable messages that this queue is currently delivering to its consumers";
String DELIVERING_SIZE_DESCRIPTION = "persistent size of messages that this queue is currently delivering to its consumers";
String DURABLE_DELIVERING_SIZE_DESCRIPTION = "persistent size of durable messages that this queue is currently delivering to its consumers";
String CONSUMER_COUNT_DESCRIPTION = "number of consumers consuming messages from this queue";
String MESSAGES_ADDED_DESCRIPTION = "number of messages added to this queue since it was created";
String MESSAGES_ACKNOWLEDGED_DESCRIPTION = "number of messages acknowledged from this queue since it was created";
String MESSAGES_EXPIRED_DESCRIPTION = "number of messages expired from this queue since it was created";
String MESSAGES_KILLED_DESCRIPTION = "number of messages removed from this queue since it was created due to exceeding the max delivery attempts";
/**
* Returns the name of this queue.
*/
@Attribute(desc = "name of this queue")
String getName();
/**
* Returns the address this queue is bound to.
*/
@Attribute(desc = "address this queue is bound to")
String getAddress();
/**
* Returns this queue ID.
*/
@Attribute(desc = "ID of this queue")
long getID();
/**
* Returns whether this queue is temporary.
*/
@Attribute(desc = "whether this queue is temporary")
boolean isTemporary();
/**
* Returns whether this queue is used for a retroactive address.
*/
@Attribute(desc = "whether this queue is used for a retroactive address")
boolean isRetroactiveResource();
/**
* Returns whether this queue is durable.
*/
@Attribute(desc = "whether this queue is durable")
boolean isDurable();
/**
* Returns the user that is associated with creating the queue.
*/
@Attribute(desc = "the user that created the queue")
String getUser();
/**
* The routing type of this queue.
*/
@Attribute(desc = "routing type of this queue")
String getRoutingType();
/**
* Returns the filter associated with this queue.
*/
@Attribute(desc = "filter associated with this queue")
String getFilter();
/**
* Returns the number of messages currently in this queue.
*/
@Attribute(desc = MESSAGE_COUNT_DESCRIPTION)
long getMessageCount();
/**
* Returns the rate of writing messages to the queue.
*/
@Attribute(desc = "rate of writing messages to the queue currently (based on default window function)")
float getProducedRate();
/**
* Returns the persistent size of all messages currently in this queue. The persistent size of a message
* is the amount of space the message would take up on disk which is used to track how much data there
* is to consume on this queue
*/
@Attribute(desc = PERSISTENT_SIZE_DESCRIPTION)
long getPersistentSize();
/**
* Returns the number of durable messages currently in this queue.
*/
@Attribute(desc = DURABLE_MESSAGE_COUNT_DESCRIPTION)
long getDurableMessageCount();
/**
* Returns the persistent size of durable messages currently in this queue. The persistent size of a message
* is the amount of space the message would take up on disk which is used to track how much data there
* is to consume on this queue
*/
@Attribute(desc = DURABLE_PERSISTENT_SIZE_DESCRIPTION)
long getDurablePersistentSize();
/**
* Returns the number of scheduled messages in this queue.
*/
@Attribute(desc = SCHEDULED_MESSAGE_COUNT_DESCRIPTION)
long getScheduledCount();
/**
* Returns the size of scheduled messages in this queue.
*/
@Attribute(desc = SCHEDULED_SIZE_DESCRIPTION)
long getScheduledSize();
/**
* Returns the number of durable scheduled messages in this queue.
*/
@Attribute(desc = DURABLE_SCHEDULED_MESSAGE_COUNT_DESCRIPTION)
long getDurableScheduledCount();
/**
* Returns the size of durable scheduled messages in this queue.
*/
@Attribute(desc = DURABLE_SCHEDULED_SIZE_DESCRIPTION)
long getDurableScheduledSize();
/**
* Returns the number of consumers consuming messages from this queue.
*/
@Attribute(desc = CONSUMER_COUNT_DESCRIPTION)
int getConsumerCount();
/**
* Returns the number of messages that this queue is currently delivering to its consumers.
*/
@Attribute(desc = DELIVERING_MESSAGE_COUNT_DESCRIPTION)
int getDeliveringCount();
/**
* Returns the persistent size of messages that this queue is currently delivering to its consumers.
*/
@Attribute(desc = DELIVERING_SIZE_DESCRIPTION)
long getDeliveringSize();
/**
* Returns the number of durable messages that this queue is currently delivering to its consumers.
*/
@Attribute(desc = DURABLE_DELIVERING_MESSAGE_COUNT_DESCRIPTION)
int getDurableDeliveringCount();
/**
* Returns the size of durable messages that this queue is currently delivering to its consumers.
*/
@Attribute(desc = DURABLE_DELIVERING_SIZE_DESCRIPTION)
long getDurableDeliveringSize();
/**
* Returns the number of messages added to this queue since it was created.
*/
@Attribute(desc = MESSAGES_ADDED_DESCRIPTION)
long getMessagesAdded();
/**
* Returns the number of messages added to this queue since it was created.
*/
@Attribute(desc = MESSAGES_ACKNOWLEDGED_DESCRIPTION)
long getMessagesAcknowledged();
/**
* Returns the number of messages added to this queue since it was created.
*/
@Attribute(desc = "number of messages acknowledged attempts from this queue since it was created")
long getAcknowledgeAttempts();
/**
* Returns the number of messages expired from this queue since it was created.
*/
@Attribute(desc = MESSAGES_EXPIRED_DESCRIPTION)
long getMessagesExpired();
/**
* Returns the number of messages removed from this queue since it was created due to exceeding the max delivery attempts.
*/
@Attribute(desc = MESSAGES_KILLED_DESCRIPTION)
long getMessagesKilled();
/**
* Returns the first message on the queue as JSON
*/
@Attribute(desc = "first message on the queue as JSON")
String getFirstMessageAsJSON() throws Exception;
/**
* Returns the timestamp of the first message in milliseconds.
*/
@Attribute(desc = "timestamp of the first message in milliseconds")
Long getFirstMessageTimestamp() throws Exception;
/**
* Returns the age of the first message in milliseconds.
*/
@Attribute(desc = "age of the first message in milliseconds")
Long getFirstMessageAge() throws Exception;
/**
* Returns the expiry address associated with this queue.
*/
@Attribute(desc = "expiry address associated with this queue")
String getExpiryAddress();
/**
* Returns the dead-letter address associated with this queue.
*/
@Attribute(desc = "dead-letter address associated with this queue")
String getDeadLetterAddress();
/**
*
*/
@Attribute(desc = "maximum number of consumers allowed on this queue at any one time")
int getMaxConsumers();
/**
*
*/
@Attribute(desc = "delete this queue when the last consumer disconnects")
boolean isPurgeOnNoConsumers();
/**
*
*/
@Attribute(desc = "is this queue managed by configuration (broker.xml)")
boolean isConfigurationManaged();
/**
*
*/
@Attribute(desc = "If the queue should route exclusively to one consumer")
boolean isExclusive();
/**
*
*/
@Attribute(desc = "is this queue a last value queue")
boolean isLastValue();
// Operations ----------------------------------------------------
/**
* Lists all the messages scheduled for delivery for this queue.
*
* 1 Map represents 1 message, keys are the message's properties and headers, values are the corresponding values.
*/
@Operation(desc = "List the messages scheduled for delivery", impact = MBeanOperationInfo.INFO)
Map[] listScheduledMessages() throws Exception;
/**
* Lists all the messages scheduled for delivery for this queue using JSON serialization.
*/
@Operation(desc = "List the messages scheduled for delivery and returns them using JSON", impact = MBeanOperationInfo.INFO)
String listScheduledMessagesAsJSON() throws Exception;
/**
* Lists all the messages being deliver per consumer.
*
* The Map's key is a toString representation for the consumer. Each consumer will then return a {@code Map[]} same way is returned by {@link #listScheduledMessages()}
*/
@Operation(desc = "List all messages being delivered per consumer")
Map[]> listDeliveringMessages() throws Exception;
/**
* Executes a conversion of {@link #listDeliveringMessages()} to JSON
*
* @return
* @throws Exception
*/
@Operation(desc = "list all messages being delivered per consumer using JSON form")
String listDeliveringMessagesAsJSON() throws Exception;
/**
* Lists all the messages in this queue matching the specified filter.
*
* 1 Map represents 1 message, keys are the message's properties and headers, values are the corresponding values.
*
* Using {@code null} or an empty filter will list all messages from this queue.
*/
@Operation(desc = "List all the messages in the queue matching the given filter", impact = MBeanOperationInfo.INFO)
Map[] listMessages(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter) throws Exception;
/**
* Lists all the messages in this queue matching the specified filter using JSON serialization.
*
* Using {@code null} or an empty filter will list all messages from this queue.
*/
@Operation(desc = "List all the messages in the queue matching the given filter and returns them using JSON", impact = MBeanOperationInfo.INFO)
String listMessagesAsJSON(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter) throws Exception;
/**
* Counts the number of messages in this queue matching the specified filter.
*
* Using {@code null} or an empty filter will count all messages from this queue.
*/
@Operation(desc = "Returns the number of the messages in the queue matching the given filter", impact = MBeanOperationInfo.INFO)
long countMessages(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter) throws Exception;
@Operation(desc = "Returns the number of the messages in the queue", impact = MBeanOperationInfo.INFO)
long countMessages() throws Exception;
/**
* Counts the number of messages in this queue matching the specified filter, grouped by the given property field.
* In case of null property will be grouped in "null"
*
* Using {@code null} or an empty filter will count all messages from this queue.
*/
@Operation(desc = "Returns the number of the messages in the queue matching the given filter, grouped by the given property field", impact = MBeanOperationInfo.INFO)
String countMessages(@Parameter(name = "filter", desc = "This filter separate account messages") String filter, @Parameter(name = "groupByProperty", desc = "This property to group by") String groupByProperty) throws Exception;
/**
* Counts the number of delivering messages in this queue matching the specified filter.
*
* Using {@code null} or an empty filter will count all messages from this queue.
*/
@Operation(desc = "Returns the number of the messages in the queue matching the given filter")
long countDeliveringMessages(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter) throws Exception;
/**
* Counts the number of delivering messages in this queue matching the specified filter, grouped by the given property field.
* In case of null property will be grouped in "null"
*
* Using {@code null} or an empty filter will count all messages from this queue.
*/
@Operation(desc = "Returns the number of the messages in the queue matching the given filter, grouped by the given property field")
String countDeliveringMessages(@Parameter(name = "filter", desc = "This filter separate account messages") String filter, @Parameter(name = "groupByProperty", desc = "This property to group by") String groupByProperty) throws Exception;
/**
* Removes the message corresponding to the specified message ID.
*
* @return {@code true} if the message was removed, {@code false} else
*/
@Operation(desc = "Remove the message corresponding to the given messageID", impact = MBeanOperationInfo.ACTION)
boolean removeMessage(@Parameter(name = "messageID", desc = "A message ID") long messageID) throws Exception;
/**
* Removes all the message corresponding to the specified filter.
*
* Using {@code null} or an empty filter will remove all messages from this queue.
*
* @return the number of removed messages
*/
@Operation(desc = "Remove the messages corresponding to the given filter (and returns the number of removed messages)", impact = MBeanOperationInfo.ACTION)
int removeMessages(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter) throws Exception;
/**
* Removes all the message corresponding to the specified filter.
*
* Using {@code null} or an empty filter will remove all messages from this queue.
*
* @return the number of removed messages
*/
@Operation(desc = "Remove the messages corresponding to the given filter (and returns the number of removed messages)", impact = MBeanOperationInfo.ACTION)
int removeMessages(@Parameter(name = "flushLimit", desc = "Limit to flush transactions during the operation to avoid OutOfMemory") int flushLimit,
@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter) throws Exception;
/**
* Removes all the message from the queue.
*
* @return the number of removed messages
*/
@Operation(desc = "Remove all the messages from the Queue (and returns the number of removed messages)", impact = MBeanOperationInfo.ACTION)
int removeAllMessages() throws Exception;
/**
* Expires all the message corresponding to the specified filter.
*
* Using {@code null} or an empty filter will expire all messages from this queue.
*
* @return the number of expired messages
*/
@Operation(desc = "Expire the messages corresponding to the given filter (and returns the number of expired messages)", impact = MBeanOperationInfo.ACTION)
int expireMessages(@Parameter(name = "filter", desc = "A message filter") String filter) throws Exception;
/**
* Expires the message corresponding to the specified message ID.
*
* @return {@code true} if the message was expired, {@code false} else
*/
@Operation(desc = "Remove the message corresponding to the given messageID", impact = MBeanOperationInfo.ACTION)
boolean expireMessage(@Parameter(name = "messageID", desc = "A message ID") long messageID) throws Exception;
/**
* Retries the message corresponding to the given messageID to the original queue.
* This is appropriate on dead messages on Dead letter queues only.
*
* @param messageID
* @return {@code true} if the message was retried, {@code false} else
* @throws Exception
*/
@Operation(desc = "Retry the message corresponding to the given messageID to the original queue", impact = MBeanOperationInfo.ACTION)
boolean retryMessage(@Parameter(name = "messageID", desc = "A message ID") long messageID) throws Exception;
/**
* Retries all messages on a DLQ to their respective original queues.
* This is appropriate on dead messages on Dead letter queues only.
*
* @return the number of retried messages.
* @throws Exception
*/
@Operation(desc = "Retry all messages on a DLQ to their respective original queues", impact = MBeanOperationInfo.ACTION)
int retryMessages() throws Exception;
/**
* Moves the message corresponding to the specified message ID to the specified other queue.
*
* @return {@code true} if the message was moved, {@code false} else
*/
@Operation(desc = "Move the message corresponding to the given messageID to another queue. rejectDuplicate=false on this case", impact = MBeanOperationInfo.ACTION)
boolean moveMessage(@Parameter(name = "messageID", desc = "A message ID") long messageID,
@Parameter(name = "otherQueueName", desc = "The name of the queue to move the message to") String otherQueueName) throws Exception;
/**
* Moves the message corresponding to the specified message ID to the specified other queue.
*
* @return {@code true} if the message was moved, {@code false} else
*/
@Operation(desc = "Move the message corresponding to the given messageID to another queue", impact = MBeanOperationInfo.ACTION)
boolean moveMessage(@Parameter(name = "messageID", desc = "A message ID") long messageID,
@Parameter(name = "otherQueueName", desc = "The name of the queue to move the message to") String otherQueueName,
@Parameter(name = "rejectDuplicates", desc = "Reject messages identified as duplicate by the duplicate message") boolean rejectDuplicates) throws Exception;
/**
* Moves all the message corresponding to the specified filter to the specified other queue.
* RejectDuplicates = false on this case
*
* Using {@code null} or an empty filter will move all messages from this queue.
*
* @return the number of moved messages
*/
@Operation(desc = "Move the messages corresponding to the given filter (and returns the number of moved messages). RejectDuplicates=false on this case.", impact = MBeanOperationInfo.ACTION)
int moveMessages(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter,
@Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to") String otherQueueName) throws Exception;
/**
* Moves all the message corresponding to the specified filter to the specified other queue.
*
* Using {@code null} or an empty filter will move all messages from this queue.
*
* @return the number of moved messages
*/
@Operation(desc = "Move the messages corresponding to the given filter (and returns the number of moved messages)", impact = MBeanOperationInfo.ACTION)
int moveMessages(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter,
@Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to") String otherQueueName,
@Parameter(name = "rejectDuplicates", desc = "Reject messages identified as duplicate by the duplicate message") boolean rejectDuplicates) throws Exception;
@Operation(desc = "Move the messages corresponding to the given filter (and returns the number of moved messages)", impact = MBeanOperationInfo.ACTION)
int moveMessages(@Parameter(name = "flushLimit", desc = "Limit to flush transactions during the operation to avoid OutOfMemory") int flushLimit,
@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter,
@Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to") String otherQueueName,
@Parameter(name = "rejectDuplicates", desc = "Reject messages identified as duplicate by the duplicate message") boolean rejectDuplicates) throws Exception;
/**
* Sends the message corresponding to the specified message ID to this queue's dead letter address.
*
* @return {@code true} if the message was sent to the dead letter address, {@code false} else
*/
@Operation(desc = "Send the message corresponding to the given messageID to this queue's Dead Letter Address", impact = MBeanOperationInfo.ACTION)
boolean sendMessageToDeadLetterAddress(@Parameter(name = "messageID", desc = "A message ID") long messageID) throws Exception;
/**
* Sends all the message corresponding to the specified filter to this queue's dead letter address.
*
* Using {@code null} or an empty filter will send all messages from this queue.
*
* @return the number of sent messages
*/
@Operation(desc = "Send the messages corresponding to the given filter to this queue's Dead Letter Address", impact = MBeanOperationInfo.ACTION)
int sendMessagesToDeadLetterAddress(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filterStr) throws Exception;
/**
* @param headers the message headers and properties to set. Can only
* container Strings maped to primitive types.
* @param body the text to send
* @param durable
* @param user
* @param password @return
* @throws Exception
*/
@Operation(desc = "Sends a TextMessage to a password-protected destination.", impact = MBeanOperationInfo.ACTION)
String sendMessage(@Parameter(name = "headers", desc = "The headers to add to the message") Map headers,
@Parameter(name = "type", desc = "A type for the message") int type,
@Parameter(name = "body", desc = "The body (byte[]) of the message encoded as a string using Base64") String body,
@Parameter(name = "durable", desc = "Whether the message is durable") boolean durable,
@Parameter(name = "user", desc = "The user to authenticate with") String user,
@Parameter(name = "password", desc = "The users password to authenticate with") String password) throws Exception;
/**
* Changes the message's priority corresponding to the specified message ID to the specified priority.
*
* @param newPriority between 0 and 9 inclusive.
* @return {@code true} if the message priority was changed
*/
@Operation(desc = "Change the priority of the message corresponding to the given messageID", impact = MBeanOperationInfo.ACTION)
boolean changeMessagePriority(@Parameter(name = "messageID", desc = "A message ID") long messageID,
@Parameter(name = "newPriority", desc = "the new priority (between 0 and 9)") int newPriority) throws Exception;
/**
* Changes the priority for all the message corresponding to the specified filter to the specified priority.
*
* Using {@code null} or an empty filter will change all messages from this queue.
*
* @return the number of changed messages
*/
@Operation(desc = "Change the priority of the messages corresponding to the given filter", impact = MBeanOperationInfo.ACTION)
int changeMessagesPriority(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter,
@Parameter(name = "newPriority", desc = "the new priority (between 0 and 9)") int newPriority) throws Exception;
/**
* Lists the message counter for this queue.
*/
@Operation(desc = "List the message counters", impact = MBeanOperationInfo.INFO)
String listMessageCounter() throws Exception;
/**
* Resets the message counter for this queue.
*/
@Operation(desc = "Reset the message counters", impact = MBeanOperationInfo.INFO)
void resetMessageCounter() throws Exception;
/**
* Lists the message counter for this queue as a HTML table.
*/
@Operation(desc = "List the message counters as HTML", impact = MBeanOperationInfo.INFO)
String listMessageCounterAsHTML() throws Exception;
/**
* Lists the message counter history for this queue.
*/
@Operation(desc = "List the message counters history", impact = MBeanOperationInfo.INFO)
String listMessageCounterHistory() throws Exception;
/**
* Lists the message counter history for this queue as a HTML table.
*/
@Operation(desc = "List the message counters history HTML", impact = MBeanOperationInfo.INFO)
String listMessageCounterHistoryAsHTML() throws Exception;
/**
* Pauses the queue. Messages are no longer delivered to its consumers.
*/
@Operation(desc = "Pauses the Queue", impact = MBeanOperationInfo.ACTION)
void pause() throws Exception;
/**
* Pauses the queue. Messages are no longer delivered to its consumers.
*/
@Operation(desc = "Pauses the Queue", impact = MBeanOperationInfo.ACTION)
void pause(@Parameter(name = "persist", desc = "if true, the pause state will be persisted.") boolean persist) throws Exception;
/**
* Resumes the queue. Messages are again delivered to its consumers.
*/
@Operation(desc = "Resumes delivery of queued messages and gets the queue out of paused state. It will also affected the state of a persisted pause.", impact = MBeanOperationInfo.ACTION)
void resume() throws Exception;
@Operation(desc = "List all the existent consumers on the Queue")
String listConsumersAsJSON() throws Exception;
/**
* Returns whether the queue is paused.
*/
@Attribute(desc = "whether the queue is paused")
boolean isPaused() throws Exception;
@Operation(desc = "Browse Messages", impact = MBeanOperationInfo.ACTION)
CompositeData[] browse() throws Exception;
@Operation(desc = "Browse Messages", impact = MBeanOperationInfo.ACTION)
CompositeData[] browse(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filter) throws Exception;
@Operation(desc = "Browse Messages", impact = MBeanOperationInfo.ACTION)
CompositeData[] browse(@Parameter(name = "page", desc = "Current page") int page,
@Parameter(name = "pageSize", desc = "Page size") int pageSize) throws Exception;
/**
* Resets the MessagesAdded property
*/
@Operation(desc = "Resets the MessagesAdded property", impact = MBeanOperationInfo.ACTION)
void resetMessagesAdded() throws Exception;
/**
* Resets the MessagesAdded property
*/
@Operation(desc = "Resets the MessagesAcknowledged property", impact = MBeanOperationInfo.ACTION)
void resetMessagesAcknowledged() throws Exception;
/**
* Resets the MessagesExpired property
*/
@Operation(desc = "Resets the MessagesExpired property", impact = MBeanOperationInfo.ACTION)
void resetMessagesExpired() throws Exception;
/**
* Resets the MessagesExpired property
*/
@Operation(desc = "Resets the MessagesKilled property", impact = MBeanOperationInfo.ACTION)
void resetMessagesKilled() throws Exception;
/**
* it will flush one cycle on internal executors, so you would be sure that any pending tasks are done before you call
* any other measure.
* It is useful if you need the exact number of counts on a message
*/
@Operation(desc = "Flush internal executors", impact = MBeanOperationInfo.ACTION)
void flushExecutor();
/**
* Will reset the all the groups.
* This is useful if you want a complete rebalance of the groups to consumers
*/
@Operation(desc = "Resets all groups", impact = MBeanOperationInfo.ACTION)
void resetAllGroups();
/**
* Will reset the group matching the given groupID.
* This is useful if you want the given group to be rebalanced to the consumers
*/
@Operation(desc = "Reset the specified group", impact = MBeanOperationInfo.ACTION)
void resetGroup(@Parameter(name = "groupID", desc = "ID of group to reset") String groupID);
/**
* Will return the current number of active groups.
*/
@Attribute(desc = "Get the current number of active groups")
int getGroupCount();
@Operation(desc = "List all the existent group to consumers mappings on the Queue")
String listGroupsAsJSON() throws Exception;
/**
* Will return the ring size.
*/
@Attribute(desc = "Get the ring size")
long getRingSize();
/**
* Returns whether the groups of this queue are automatically rebalanced.
*/
@Attribute(desc = "whether the groups of this queue are automatically rebalanced")
boolean isGroupRebalance();
/**
* Will return the group buckets.
*/
@Attribute(desc = "Get the group buckets")
int getGroupBuckets();
/**
* Will return the header key to notify a consumer of a group change.
*/
@Attribute(desc = "Get the header key to notify a consumer of a group change")
String getGroupFirstKey();
}