blob: a7649b7d98566d1ab51ba88f794f43aa8ea3b089 [file] [log] [blame]
/**
* 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.broker.jmx;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.OpenDataException;
public interface QueueViewMBean extends DestinationViewMBean {
/**
* Retrieve a message from the destination's queue.
*
* @param messageId the message id of the message to retrieve
* @return A CompositeData object which is a JMX version of the messages
* @throws OpenDataException
*/
@MBeanInfo("View a message from the destination by JMS message ID.")
CompositeData getMessage(@MBeanInfo("messageId") String messageId) throws OpenDataException;
/**
* Removes a message from the queue. If the message has already been
* dispatched to another consumer, the message cannot be deleted and this
* method will return false.
*
* @param messageId
* @return true if the message was found and could be successfully deleted.
* @throws Exception
*/
@MBeanInfo("Remove a message from the destination by JMS message ID. If the message has been dispatched, it cannot be deleted and false is returned.")
boolean removeMessage(@MBeanInfo("messageId") String messageId) throws Exception;
/**
* Removes the messages matching the given selector
*
* @return the number of messages removed
*/
@MBeanInfo("Removes messages from the destination based on an SQL-92 selection on the message headers or XPATH on the body.")
int removeMatchingMessages(@MBeanInfo("selector") String selector) throws Exception;
/**
* Removes the messages matching the given selector up to the maximum number
* of matched messages
*
* @return the number of messages removed
*/
@MBeanInfo("Removes up to a specified number of messages from the destination based on an SQL-92 selection on the message headers or XPATH on the body.")
int removeMatchingMessages(@MBeanInfo("selector") String selector, @MBeanInfo("maximumMessages") int maximumMessages) throws Exception;
/**
* Removes all of the messages in the queue.
*
* @throws Exception
*/
@MBeanInfo("Removes all of the messages in the queue.")
void purge() throws Exception;
/**
* Copies a given message to another destination.
*
* @param messageId
* @param destinationName
* @return true if the message was found and was successfully copied to the
* other destination.
* @throws Exception
*/
@MBeanInfo("Copies a message with the given JMS message ID into the specified destination.")
boolean copyMessageTo(@MBeanInfo("messageId") String messageId, @MBeanInfo("destinationName") String destinationName) throws Exception;
/**
* Copies the messages matching the given selector
*
* @return the number of messages copied
*/
@MBeanInfo("Copies messages based on an SQL-92 selecton on the message headers or XPATH on the body into the specified destination.")
int copyMatchingMessagesTo(@MBeanInfo("selector") String selector, @MBeanInfo("destinationName") String destinationName) throws Exception;
/**
* Copies the messages matching the given selector up to the maximum number
* of matched messages
*
* @return the number of messages copied
*/
@MBeanInfo("Copies up to a specified number of messages based on an SQL-92 selecton on the message headers or XPATH on the body into the specified destination.")
int copyMatchingMessagesTo(@MBeanInfo("selector") String selector, @MBeanInfo("destinationName") String destinationName, @MBeanInfo("maximumMessages") int maximumMessages) throws Exception;
/**
* Moves the message to another destination.
*
* @param messageId
* @param destinationName
* @return true if the message was found and was successfully copied to the
* other destination.
* @throws Exception
*/
@MBeanInfo("Moves a message with the given JMS message ID into the specified destination.")
boolean moveMessageTo(@MBeanInfo("messageId") String messageId, @MBeanInfo("destinationName") String destinationName) throws Exception;
/**
* Moves a message back to its original destination
*/
@MBeanInfo("Moves a message with the given JMS message back to its original destination")
boolean retryMessage(@MBeanInfo("messageId") String messageId) throws Exception;
/**
* Moves the messages matching the given selector
*
* @return the number of messages removed
*/
@MBeanInfo("Moves messages based on an SQL-92 selecton on the message headers or XPATH on the body into the specified destination.")
int moveMatchingMessagesTo(@MBeanInfo("selector") String selector, @MBeanInfo("destinationName") String destinationName) throws Exception;
/**
* Moves the messages matching the given selector up to the maximum number
* of matched messages
*/
@MBeanInfo("Moves up to a specified number of messages based on an SQL-92 selecton on the message headers or XPATH on the body into the specified destination.")
int moveMatchingMessagesTo(@MBeanInfo("selector") String selector, @MBeanInfo("destinationName") String destinationName, @MBeanInfo("maximumMessages") int maximumMessages) throws Exception;
/**
* @return true if the message cursor has memory space available
* to page in more messages
*/
@MBeanInfo("Message cursor has memory space available")
public boolean doesCursorHaveSpace();
/**
* @return true if the cursor has reached its memory limit for
* paged in messages
*/
@MBeanInfo("Message cusor has reached its memory limit for paged in messages")
public boolean isCursorFull();
/**
* @return true if the cursor has messages buffered to deliver
*/
@MBeanInfo("Message cursor has buffered messages to deliver")
public boolean doesCursorHaveMessagesBuffered();
/**
* @return the cursor memory usage in bytes
*/
@MBeanInfo("Message cursor memory usage, in bytes.")
public long getCursorMemoryUsage();
/**
* @return the cursor memory usage as a percentage
*/
@MBeanInfo("Percentage of memory limit used")
public int getCursorPercentUsage();
/**
* @return the number of messages available to be paged in
* by the cursor
*/
@MBeanInfo("Number of messages available to be paged in by the cursor.")
public int cursorSize();
/**
* @return true if caching is currently enabled of for the destination
*/
@MBeanInfo("Caching is enabled")
boolean isCacheEnabled();
}