blob: 4f80dc77114db66c3bde27f53a6de3f3a8f8f1a9 [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.Map;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.OpenDataException;
import org.apache.activemq.Service;
public interface BrokerViewMBean extends Service {
/**
* @return The unique id of the broker.
*/
@MBeanInfo("The unique id of the broker.")
String getBrokerId();
/**
* @return The name of the broker.
*/
@MBeanInfo("The name of the broker.")
String getBrokerName();
/**
* @return The name of the broker.
*/
@MBeanInfo("The version of the broker.")
String getBrokerVersion();
/**
* @return Uptime of the broker.
*/
@MBeanInfo("Uptime of the broker.")
String getUptime();
/**
* @return Uptime of the broker in milliseconds.
*/
@MBeanInfo("Uptime of the broker in milliseconds.")
long getUptimeMillis();
/**
* @return The current number of active connections on this Broker.
*/
int getCurrentConnectionsCount();
/**
* @return The total number of connections serviced since this Broker was started.
*/
long getTotalConnectionsCount();
/**
* The Broker will flush it's caches so that the garbage collector can
* reclaim more memory.
*
* @throws Exception
*/
@MBeanInfo("Runs the Garbage Collector.")
void gc() throws Exception;
@MBeanInfo("Reset all broker statistics.")
void resetStatistics();
@MBeanInfo("Enable broker statistics.")
void enableStatistics();
@MBeanInfo("Disable broker statistics.")
void disableStatistics();
@MBeanInfo("Broker statistics enabled.")
boolean isStatisticsEnabled();
@MBeanInfo("Number of messages that have been sent to the broker.")
long getTotalEnqueueCount();
@MBeanInfo("Number of messages that have been acknowledged on the broker.")
long getTotalDequeueCount();
@MBeanInfo("Number of message consumers subscribed to destinations on the broker.")
long getTotalConsumerCount();
@MBeanInfo("Number of message producers active on destinations on the broker.")
long getTotalProducerCount();
@MBeanInfo("Number of unacknowledged messages on the broker.")
long getTotalMessageCount();
@MBeanInfo("Average message size on this broker")
long getAverageMessageSize();
@MBeanInfo("Max message size on this broker")
public long getMaxMessageSize();
@MBeanInfo("Min message size on this broker")
public long getMinMessageSize();
@MBeanInfo("Percent of memory limit used.")
int getMemoryPercentUsage();
@MBeanInfo("Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage.")
long getMemoryLimit();
void setMemoryLimit(@MBeanInfo("bytes") long limit);
@MBeanInfo("Percent of store limit used.")
int getStorePercentUsage();
@MBeanInfo("Disk limit, in bytes, used for persistent messages before producers are blocked.")
long getStoreLimit();
void setStoreLimit(@MBeanInfo("bytes") long limit);
@MBeanInfo("Percent of temp limit used.")
int getTempPercentUsage();
@MBeanInfo("Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked.")
long getTempLimit();
void setTempLimit(@MBeanInfo("bytes") long limit);
@MBeanInfo("Percent of job store limit used.")
int getJobSchedulerStorePercentUsage();
@MBeanInfo("Disk limit, in bytes, used for scheduled messages before producers are blocked.")
long getJobSchedulerStoreLimit();
void setJobSchedulerStoreLimit(@MBeanInfo("bytes") long limit);
@MBeanInfo("Messages are synchronized to disk.")
boolean isPersistent();
@MBeanInfo("Slave broker.")
boolean isSlave();
/**
* Shuts down the JVM.
*
* @param exitCode the exit code that will be reported by the JVM process
* when it exits.
*/
@MBeanInfo("Shuts down the JVM.")
void terminateJVM(@MBeanInfo("exitCode") int exitCode);
/**
* Stop the broker and all it's components.
*/
@Override
@MBeanInfo("Stop the broker and all its components.")
void stop() throws Exception;
/**
* Restart the broker and all it's components.
*/
@MBeanInfo("Restart the broker and all its components.")
void restart() throws Exception;
@MBeanInfo("Poll for queues matching queueName are empty before stopping")
void stopGracefully(String connectorName, String queueName, long timeout, long pollInterval) throws Exception;
@MBeanInfo("Topics (broadcasted 'queues'); generally system information.")
ObjectName[] getTopics();
@MBeanInfo("Standard Queues containing AIE messages.")
ObjectName[] getQueues();
/**
* Queue Query API, take a look at {@link DestinationsViewFilter} for more information
*/
@MBeanInfo("Query queues")
String queryQueues(String filter, int page, int pageSize) throws IOException;
/**
* Topic Query API, take a look at {@link DestinationsViewFilter} for more information
*/
@MBeanInfo("Query topics")
String queryTopics(String filter, int page, int pageSize) throws IOException;
public CompositeData[] browseQueue(String queueName) throws OpenDataException, MalformedObjectNameException;
@MBeanInfo("Temporary Topics; generally unused.")
ObjectName[] getTemporaryTopics();
@MBeanInfo("Temporary Queues; generally temporary message response holders.")
ObjectName[] getTemporaryQueues();
@MBeanInfo("Topic Subscribers")
ObjectName[] getTopicSubscribers();
@MBeanInfo("Durable (persistent) topic subscribers")
ObjectName[] getDurableTopicSubscribers();
@MBeanInfo("Inactive (disconnected persistent) topic subscribers")
ObjectName[] getInactiveDurableTopicSubscribers();
@MBeanInfo("Queue Subscribers.")
ObjectName[] getQueueSubscribers();
@MBeanInfo("Temporary Topic Subscribers.")
ObjectName[] getTemporaryTopicSubscribers();
@MBeanInfo("Temporary Queue Subscribers.")
ObjectName[] getTemporaryQueueSubscribers();
@MBeanInfo("Topic Producers.")
public ObjectName[] getTopicProducers();
@MBeanInfo("Queue Producers.")
public ObjectName[] getQueueProducers();
@MBeanInfo("Temporary Topic Producers.")
public ObjectName[] getTemporaryTopicProducers();
@MBeanInfo("Temporary Queue Producers.")
public ObjectName[] getTemporaryQueueProducers();
@MBeanInfo("Dynamic Destination Producers.")
public ObjectName[] getDynamicDestinationProducers();
@MBeanInfo("Adds a Connector to the broker.")
String addConnector(@MBeanInfo("discoveryAddress") String discoveryAddress) throws Exception;
@MBeanInfo("Adds a Network Connector to the broker.")
String addNetworkConnector(@MBeanInfo("discoveryAddress") String discoveryAddress) throws Exception;
@MBeanInfo("Removes a Connector from the broker.")
boolean removeConnector(@MBeanInfo("connectorName") String connectorName) throws Exception;
@MBeanInfo("Removes a Network Connector from the broker.")
boolean removeNetworkConnector(@MBeanInfo("connectorName") String connectorName) throws Exception;
/**
* Adds a Topic destination to the broker.
*
* @param name The name of the Topic
* @throws Exception
*/
@MBeanInfo("Adds a Topic destination to the broker.")
void addTopic(@MBeanInfo("name") String name) throws Exception;
/**
* Adds a Queue destination to the broker.
*
* @param name The name of the Queue
* @throws Exception
*/
@MBeanInfo("Adds a Queue destination to the broker.")
void addQueue(@MBeanInfo("name") String name) throws Exception;
/**
* Removes a Topic destination from the broker.
*
* @param name The name of the Topic
* @throws Exception
*/
@MBeanInfo("Removes a Topic destination from the broker.")
void removeTopic(@MBeanInfo("name") String name) throws Exception;
/**
* Removes a Queue destination from the broker.
*
* @param name The name of the Queue
* @throws Exception
*/
@MBeanInfo("Removes a Queue destination from the broker.")
void removeQueue(@MBeanInfo("name") String name) throws Exception;
/**
* Creates a new durable topic subscriber
*
* @param clientId the JMS client ID
* @param subscriberName the durable subscriber name
* @param topicName the name of the topic to subscribe to
* @param selector a selector or null
* @return the object name of the MBean registered in JMX
*/
@MBeanInfo(value="Creates a new durable topic subscriber.")
ObjectName createDurableSubscriber(@MBeanInfo("clientId") String clientId, @MBeanInfo("subscriberName") String subscriberName, @MBeanInfo("topicName") String topicName, @MBeanInfo("selector") String selector) throws Exception;
/**
* Destroys a durable subscriber
*
* @param clientId the JMS client ID
* @param subscriberName the durable subscriber name
*/
@MBeanInfo(value="Destroys a durable subscriber.")
void destroyDurableSubscriber(@MBeanInfo("clientId") String clientId, @MBeanInfo("subscriberName") String subscriberName) throws Exception;
/**
* Reloads log4j.properties from the classpath.
* This methods calls org.apache.activemq.transport.TransportLoggerControl.reloadLog4jProperties
* @throws Throwable
*/
@MBeanInfo(value="Reloads log4j.properties from the classpath.")
public void reloadLog4jProperties() throws Throwable;
@MBeanInfo("The url of the VM connector")
String getVMURL();
@MBeanInfo("The map of all defined transport connectors, with transport name as a key")
Map<String, String> getTransportConnectors();
@MBeanInfo("The url of transport connector by it's type; e.g. tcp, stomp, ssl, etc.")
String getTransportConnectorByType(String type);
@MBeanInfo("The location of the data directory")
public String getDataDirectory();
@MBeanInfo("JMSJobScheduler")
ObjectName getJMSJobScheduler();
}