blob: ad842cb5c205355a216e146874115615e95022a7 [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 java.io.IOException;
import java.util.List;
import java.util.Map;
import javax.jms.InvalidSelectorException;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.OpenDataException;
import javax.management.openmbean.TabularData;
public interface DestinationViewMBean {
/**
* Returns the name of this destination
*/
@MBeanInfo("Name of this destination.")
String getName();
/**
* Resets the managment counters.
*/
@MBeanInfo("Resets statistics.")
void resetStatistics();
/**
* Returns the number of messages that have been sent to the destination.
*
* @return The number of messages that have been sent to the destination.
*/
@MBeanInfo("Number of messages that have been sent to the destination.")
long getEnqueueCount();
/**
* Returns the number of messages that have been delivered (potentially not
* acknowledged) to consumers.
*
* @return The number of messages that have been delivered (potentially not
* acknowledged) to consumers.
*/
@MBeanInfo("Number of messages that have been delivered (but potentially not acknowledged) to consumers.")
long getDispatchCount();
/**
* Returns the number of messages that have been acknowledged from the
* destination.
*
* @return The number of messages that have been acknowledged from the
* destination.
*/
@MBeanInfo("Number of messages that have been acknowledged (and removed from) from the destination.")
long getDequeueCount();
/**
* Returns the number of messages that have been dispatched but not
* acknowledged
*
* @return The number of messages that have been dispatched but not
* acknowledged
*/
@MBeanInfo("Number of messages that have been dispatched to, but not acknowledged by, consumers.")
long getInFlightCount();
/**
* Returns the number of messages that have expired
*
* @return The number of messages that have expired
*/
@MBeanInfo("Number of messages that have been expired.")
long getExpiredCount();
/**
* Returns the number of consumers subscribed this destination.
*
* @return The number of consumers subscribed this destination.
*/
@MBeanInfo("Number of consumers subscribed to this destination.")
long getConsumerCount();
/**
* @return the number of producers publishing to the destination
*/
@MBeanInfo("Number of producers publishing to this destination")
long getProducerCount();
/**
* Returns the number of messages in this destination which are yet to be
* consumed
*
* @return Returns the number of messages in this destination which are yet
* to be consumed
*/
@MBeanInfo("Number of messages in the destination which are yet to be consumed. Potentially dispatched but unacknowledged.")
long getQueueSize();
/**
* @return An array of all the messages in the destination's queue.
*/
@MBeanInfo("An array of all messages in the destination. Not HTML friendly.")
CompositeData[] browse() throws OpenDataException;
/**
* @return A list of all the messages in the destination's queue.
*/
@MBeanInfo("A list of all messages in the destination. Not HTML friendly.")
TabularData browseAsTable() throws OpenDataException;
/**
* @return An array of all the messages in the destination's queue.
* @throws InvalidSelectorException
*/
@MBeanInfo("An array of all messages in the destination based on an SQL-92 selection on the message headers or XPATH on the body. Not HTML friendly.")
CompositeData[] browse(@MBeanInfo("selector") String selector) throws OpenDataException, InvalidSelectorException;
/**
* @return A list of all the messages in the destination's queue.
* @throws InvalidSelectorException
*/
@MBeanInfo("A list of all messages in the destination based on an SQL-92 selection on the message headers or XPATH on the body. Not HTML friendly.")
TabularData browseAsTable(@MBeanInfo("selector") String selector) throws OpenDataException, InvalidSelectorException;
/**
* Sends a TextMesage to the destination.
*
* @param body the text to send
* @return the message id of the message sent.
* @throws Exception
*/
@MBeanInfo("Sends a TextMessage to the destination.")
String sendTextMessage(@MBeanInfo("body") String body) throws Exception;
/**
* Sends a TextMesage to the destination.
*
* @param headers the message headers and properties to set. Can only
* container Strings maped to primitive types.
* @param body the text to send
* @return the message id of the message sent.
* @throws Exception
*/
@MBeanInfo("Sends a TextMessage to the destination.")
String sendTextMessage(@MBeanInfo("headers") Map<?,?> headers, @MBeanInfo("body") String body) throws Exception;
/**
* Sends a TextMesage to the destination.
* @param body the text to send
* @param user
* @param password
* @return
* @throws Exception
*/
@MBeanInfo("Sends a TextMessage to a password-protected destination.")
String sendTextMessage(@MBeanInfo("body") String body, @MBeanInfo("user") String user, @MBeanInfo("password") String password) 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 user
* @param password
* @return
* @throws Exception
*/
@MBeanInfo("Sends a TextMessage to a password-protected destination.")
String sendTextMessage(@MBeanInfo("headers") Map<?,?> headers, @MBeanInfo("body") String body, @MBeanInfo("user") String user, @MBeanInfo("password") String password) throws Exception;
/**
* @return the percentage of amount of memory used
*/
@MBeanInfo("The percentage of the memory limit used")
int getMemoryPercentUsage();
/**
* @return the amount of memory allocated to this destination
*/
@MBeanInfo("Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage.")
long getMemoryLimit();
/**
* set the amount of memory allocated to this destination
* @param limit
*/
void setMemoryLimit(long limit);
/**
* @return the portion of memory from the broker memory limit for this destination
*/
@MBeanInfo("Portion of memory from the broker memory limit for this destination")
float getMemoryUsagePortion();
/**
* set the portion of memory from the broker memory limit for this destination
* @param value
*/
void setMemoryUsagePortion(@MBeanInfo("bytes") float value);
/**
* Browses the current destination returning a list of messages
*/
@MBeanInfo("A list of all messages in the destination. Not HTML friendly.")
List<?> browseMessages() throws InvalidSelectorException;
/**
* Browses the current destination with the given selector returning a list
* of messages
*/
@MBeanInfo("A list of all messages in the destination based on an SQL-92 selection on the message headers or XPATH on the body. Not HTML friendly.")
List<?> browseMessages(String selector) throws InvalidSelectorException;
/**
* @return longest time a message is held by a destination
*/
@MBeanInfo("The longest time a message has been held this destination.")
long getMaxEnqueueTime();
/**
* @return shortest time a message is held by a destination
*/
@MBeanInfo("The shortest time a message has been held this destination.")
long getMinEnqueueTime();
/**
* @return average time a message is held by a destination
*/
@MBeanInfo("Average time a message has been held this destination.")
double getAverageEnqueueTime();
/**
* @return the producerFlowControl
*/
@MBeanInfo("Producers are flow controlled")
boolean isProducerFlowControl();
/**
* @param producerFlowControl the producerFlowControl to set
*/
public void setProducerFlowControl(@MBeanInfo("producerFlowControl") boolean producerFlowControl);
/**
* Set's the interval at which warnings about producers being blocked by
* resource usage will be triggered. Values of 0 or less will disable
* warnings
*
* @param blockedProducerWarningInterval the interval at which warning about
* blocked producers will be triggered.
*/
public void setBlockedProducerWarningInterval(@MBeanInfo("blockedProducerWarningInterval") long blockedProducerWarningInterval);
/**
*
* @return the interval at which warning about blocked producers will be
* triggered.
*/
@MBeanInfo("Blocked Producer Warning Interval")
public long getBlockedProducerWarningInterval();
/**
* @return the maxProducersToAudit
*/
@MBeanInfo("Maximum number of producers to audit")
public int getMaxProducersToAudit();
/**
* @param maxProducersToAudit the maxProducersToAudit to set
*/
public void setMaxProducersToAudit(@MBeanInfo("maxProducersToAudit") int maxProducersToAudit);
/**
* @return the maxAuditDepth
*/
@MBeanInfo("Max audit depth")
public int getMaxAuditDepth();
/**
* @param maxAuditDepth the maxAuditDepth to set
*/
public void setMaxAuditDepth(@MBeanInfo("maxAuditDepth") int maxAuditDepth);
/**
* @return the maximum number of message to be paged into the
* destination
*/
@MBeanInfo("Maximum number of messages to be paged in")
public int getMaxPageSize();
/**
* @param pageSize
* Set the maximum number of messages to page into the destination
*/
public void setMaxPageSize(@MBeanInfo("pageSize") int pageSize);
/**
* @return true if caching is allowed of for the destination
*/
@MBeanInfo("Caching is allowed")
public boolean isUseCache();
/**
* @return true if prioritized messages are enabled for the destination
*/
@MBeanInfo("Prioritized messages is enabled")
public boolean isPrioritizedMessages();
/**
* @param value
* enable/disable caching on the destination
*/
public void setUseCache(@MBeanInfo("cache") boolean value);
/**
* Returns all the current subscription MBeans matching this destination
*
* @return the names of the subscriptions for this destination
*/
@MBeanInfo("returns all the current subscription MBeans matching this destination")
ObjectName[] getSubscriptions() throws IOException, MalformedObjectNameException;
/**
* Returns the slow consumer strategy MBean for this destination
*
* @return the name of the slow consumer handler MBean for this destination
*/
@MBeanInfo("returns the optional slowConsumer handler MBeans for this destination")
ObjectName getSlowConsumerStrategy() throws IOException, MalformedObjectNameException;
}