All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hornetq.api.jms.management.JMSServerControl Maven / Gradle / Ivy

/*
 * Copyright 2005-2014 Red Hat, Inc.
 * Red Hat 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.hornetq.api.jms.management;

import javax.management.MBeanOperationInfo;

import org.hornetq.api.core.management.Operation;
import org.hornetq.api.core.management.Parameter;

/**
 * A JMSSserverControl is used to manage HornetQ JMS server.
 *
 * @author Jeff Mesnil
 * @author Tim Fox
 */
public interface JMSServerControl
{
   // Attributes ----------------------------------------------------

   /**
    * Returns whether this server is started.
    */
   boolean isStarted();

   /**
    * Returns this server's version
    */
   String getVersion();

   /**
    * Returns the names of the JMS topics available on this server.
    */
   String[] getTopicNames();

   /**
    * Returns the names of the JMS queues available on this server.
    */
   String[] getQueueNames();

   /**
    * Returns the names of the JMS connection factories available on this server.
    */
   String[] getConnectionFactoryNames();

   // Operations ----------------------------------------------------

   /**
    * Creates a durable JMS Queue.
    *
    * @return {@code true} if the queue was created, {@code false} else
    */
   @Operation(desc = "Create a JMS Queue", impact = MBeanOperationInfo.ACTION)
   boolean createQueue(@Parameter(name = "name", desc = "Name of the queue to create") String name) throws Exception;

   /**
    * Creates a durable JMS Queue with the specified name and JNDI binding.
    *
    * @return {@code true} if the queue was created, {@code false} else
    */
   @Operation(desc = "Create a JMS Queue", impact = MBeanOperationInfo.ACTION)
   boolean createQueue(@Parameter(name = "name", desc = "Name of the queue to create") String name,
                       @Parameter(name = "jndiBindings", desc = "comma-separated list of JNDI bindings (use ',' if u need to use commas in your jndi name)") String jndiBindings) throws Exception;

   /**
    * Creates a durable JMS Queue with the specified name, JNDI binding and selector.
    *
    * @return {@code true} if the queue was created, {@code false} else
    */
   @Operation(desc = "Create a JMS Queue", impact = MBeanOperationInfo.ACTION)
   boolean createQueue(@Parameter(name = "name", desc = "Name of the queue to create") String name,
                       @Parameter(name = "jndiBindings", desc = "comma-separated list of JNDI bindings (use ',' if u need to use commas in your jndi name)") String jndiBindings,
                       @Parameter(name = "selector", desc = "the jms selector") String selector) throws Exception;

   /**
    * Creates a JMS Queue with the specified name, durability, selector and JNDI binding.
    *
    * @return {@code true} if the queue was created, {@code false} else
    */
   @Operation(desc = "Create a JMS Queue", impact = MBeanOperationInfo.ACTION)
   boolean createQueue(@Parameter(name = "name", desc = "Name of the queue to create") String name,
                       @Parameter(name = "jndiBindings", desc = "comma-separated list of JNDI bindings (use ',' if u need to use commas in your jndi name)") String jndiBindings,
                       @Parameter(name = "selector", desc = "the jms selector") String selector,
                       @Parameter(name = "durable", desc = "durability of the queue") boolean durable) throws Exception;

   /**
    * Destroys a JMS Queue with the specified name.
    *
    * @return {@code true} if the queue was destroyed, {@code false} else
    */
   @Operation(desc = "Destroy a JMS Queue", impact = MBeanOperationInfo.ACTION)
   boolean destroyQueue(@Parameter(name = "name", desc = "Name of the queue to destroy") String name) throws Exception;

   /**
    * Destroys a JMS Queue with the specified name.
    *
    * @return {@code true} if the queue was destroyed, {@code false} else
    */
   @Operation(desc = "Destroy a JMS Queue", impact = MBeanOperationInfo.ACTION)
   boolean destroyQueue(@Parameter(name = "name", desc = "Name of the queue to destroy") String name, @Parameter(name = "removeConsumers", desc = "disconnect any consumers connected to this queue") boolean removeConsumers) throws Exception;

   /**
    * Creates a JMS Topic.
    *
    * @return {@code true} if the topic was created, {@code false} else
    */
   @Operation(desc = "Create a JMS Topic", impact = MBeanOperationInfo.ACTION)
   boolean createTopic(@Parameter(name = "name", desc = "Name of the topic to create") String name) throws Exception;

   /**
    * Creates a JMS Topic with the specified name and JNDI binding.
    *
    * @return {@code true} if the topic was created, {@code false} else
    */
   @Operation(desc = "Create a JMS Topic", impact = MBeanOperationInfo.ACTION)
   boolean createTopic(@Parameter(name = "name", desc = "Name of the topic to create") String name,
                       @Parameter(name = "jndiBindings", desc = "comma-separated list of JNDI bindings (use ',' if u need to use commas in your jndi name)") String jndiBindings) throws Exception;

   /**
    * Destroys a JMS Topic with the specified name.
    *
    * @return {@code true} if the topic was destroyed, {@code false} else
    */
   @Operation(desc = "Destroy a JMS Topic", impact = MBeanOperationInfo.ACTION)
   boolean destroyTopic(@Parameter(name = "name", desc = "Name of the topic to destroy") String name, @Parameter(name = "removeConsumers", desc = "disconnect any consumers connected to this queue") boolean removeConsumers) throws Exception;

   /**
    * Destroys a JMS Topic with the specified name.
    *
    * @return {@code true} if the topic was destroyed, {@code false} else
    */
   @Operation(desc = "Destroy a JMS Topic", impact = MBeanOperationInfo.ACTION)
   boolean destroyTopic(@Parameter(name = "name", desc = "Name of the topic to destroy") String name) throws Exception;

   /**
    * Create a JMS ConnectionFactory with the specified name connected to a static list of live-backup servers.
    * 
* The ConnectionFactory is bound to JNDI for all the specified bindings Strings. *
* {@code liveConnectorsTransportClassNames} are the class names * of the {@link org.hornetq.spi.core.remoting.ConnectorFactory} to connect to the live servers * and {@code liveConnectorTransportParams} are Map<String, Object> for the corresponding {@link org.hornetq.api.core.TransportConfiguration}'s parameters. */ void createConnectionFactory(String name, boolean ha, boolean useDiscovery, @Parameter(name = "cfType", desc = "RegularCF=0, QueueCF=1, TopicCF=2, XACF=3, QueueXACF=4, TopicXACF=5") int cfType, String[] connectorNames, Object[] bindings) throws Exception; /** * Create a JMS ConnectionFactory with the specified name connected to a single live-backup pair of servers. *
* The ConnectionFactory is bound to JNDI for all the specified bindings Strings. */ @Operation(desc = "Create a JMS ConnectionFactory", impact = MBeanOperationInfo.ACTION) void createConnectionFactory(@Parameter(name = "name") String name, @Parameter(name = "ha") boolean ha, @Parameter(name = "useDiscovery", desc = "should we use discovery or a connector configuration") boolean useDiscovery, @Parameter(name = "cfType", desc = "RegularCF=0, QueueCF=1, TopicCF=2, XACF=3, QueueXACF=4, TopicXACF=5") int cfType, @Parameter(name = "connectorNames", desc = "comma-separated list of connectorNames or the discovery group name") String connectors, @Parameter(name = "jndiBindings", desc = "comma-separated list of JNDI bindings (use ',' if u need to use commas in your jndi name)") String jndiBindings) throws Exception; @Operation(desc = "Create a JMS ConnectionFactory", impact = MBeanOperationInfo.ACTION) void createConnectionFactory(@Parameter(name = "name") String name, @Parameter(name = "ha") boolean ha, @Parameter(name = "useDiscovery", desc = "should we use discovery or a connector configuration") boolean useDiscovery, @Parameter(name = "cfType", desc = "RegularCF=0, QueueCF=1, TopicCF=2, XACF=3, QueueXACF=4, TopicXACF=5") int cfType, @Parameter(name = "connectorNames", desc = "An array of connector or the binding address") String[] connectors, @Parameter(name = "jndiBindings", desc = "array JNDI bindings (use ',' if u need to use commas in your jndi name)") String[] jndiBindings, @Parameter(name = "clientID", desc = "The clientID configured for the connectionFactory") String clientID, @Parameter(name = "clientFailureCheckPeriod", desc = "clientFailureCheckPeriod") long clientFailureCheckPeriod, @Parameter(name = "connectionTTL", desc = "connectionTTL") long connectionTTL, @Parameter(name = "callTimeout", desc = "callTimeout") long callTimeout, @Parameter(name = "callFailoverTimeout", desc = "callFailoverTimeout") long callFailoverTimeout, @Parameter(name = "minLargeMessageSize", desc = "minLargeMessageSize") int minLargeMessageSize, @Parameter(name = "compressLargeMessages", desc = "compressLargeMessages") boolean compressLargeMessages, @Parameter(name = "consumerWindowSize", desc = "consumerWindowSize") int consumerWindowSize, @Parameter(name = "consumerMaxRate", desc = "consumerMaxRate") int consumerMaxRate, @Parameter(name = "confirmationWindowSize", desc = "confirmationWindowSize") int confirmationWindowSize, @Parameter(name = "producerWindowSize", desc = "producerWindowSize") int producerWindowSize, @Parameter(name = "producerMaxRate", desc = "producerMaxRate") int producerMaxRate, @Parameter(name = "blockOnAcknowledge", desc = "blockOnAcknowledge") boolean blockOnAcknowledge, @Parameter(name = "blockOnDurableSend", desc = "blockOnDurableSend") boolean blockOnDurableSend, @Parameter(name = "blockOnNonDurableSend", desc = "blockOnNonDurableSend") boolean blockOnNonDurableSend, @Parameter(name = "autoGroup", desc = "autoGroup") boolean autoGroup, @Parameter(name = "preAcknowledge", desc = "preAcknowledge") boolean preAcknowledge, @Parameter(name = "loadBalancingPolicyClassName", desc = "loadBalancingPolicyClassName (null or blank mean use the default value)") String loadBalancingPolicyClassName, @Parameter(name = "transactionBatchSize", desc = "transactionBatchSize") int transactionBatchSize, @Parameter(name = "dupsOKBatchSize", desc = "dupsOKBatchSize") int dupsOKBatchSize, @Parameter(name = "useGlobalPools", desc = "useGlobalPools") boolean useGlobalPools, @Parameter(name = "scheduledThreadPoolMaxSize", desc = "scheduledThreadPoolMaxSize") int scheduledThreadPoolMaxSize, @Parameter(name = "threadPoolMaxSize", desc = "threadPoolMaxSize") int threadPoolMaxSize, @Parameter(name = "retryInterval", desc = "retryInterval") long retryInterval, @Parameter(name = "retryIntervalMultiplier", desc = "retryIntervalMultiplier") double retryIntervalMultiplier, @Parameter(name = "maxRetryInterval", desc = "maxRetryInterval") long maxRetryInterval, @Parameter(name = "reconnectAttempts", desc = "reconnectAttempts") int reconnectAttempts, @Parameter(name = "failoverOnInitialConnection", desc = "failoverOnInitialConnection") boolean failoverOnInitialConnection, @Parameter(name = "groupId", desc = "groupId") String groupId) throws Exception; @Operation(desc = "Create a JMS ConnectionFactory", impact = MBeanOperationInfo.ACTION) void createConnectionFactory(@Parameter(name = "name") String name, @Parameter(name = "ha") boolean ha, @Parameter(name = "useDiscovery", desc = "should we use discovery or a connector configuration") boolean useDiscovery, @Parameter(name = "cfType", desc = "RegularCF=0, QueueCF=1, TopicCF=2, XACF=3, QueueXACF=4, TopicXACF=5") int cfType, @Parameter(name = "connectorNames", desc = "comma-separated list of connectorNames or the discovery group name") String connectors, @Parameter(name = "jndiBindings", desc = "comma-separated list of JNDI bindings (use ',' if u need to use commas in your jndi name)") String jndiBindings, @Parameter(name = "clientID", desc = "The clientID configured for the connectionFactory") String clientID, @Parameter(name = "clientFailureCheckPeriod", desc = "clientFailureCheckPeriod") long clientFailureCheckPeriod, @Parameter(name = "connectionTTL", desc = "connectionTTL") long connectionTTL, @Parameter(name = "callTimeout", desc = "callTimeout") long callTimeout, @Parameter(name = "callFailoverTimeout", desc = "callFailoverTimeout") long callFailoverTimeout, @Parameter(name = "minLargeMessageSize", desc = "minLargeMessageSize") int minLargeMessageSize, @Parameter(name = "compressLargeMessages", desc = "compressLargeMessages") boolean compressLargeMessages, @Parameter(name = "consumerWindowSize", desc = "consumerWindowSize") int consumerWindowSize, @Parameter(name = "consumerMaxRate", desc = "consumerMaxRate") int consumerMaxRate, @Parameter(name = "confirmationWindowSize", desc = "confirmationWindowSize") int confirmationWindowSize, @Parameter(name = "producerWindowSize", desc = "producerWindowSize") int producerWindowSize, @Parameter(name = "producerMaxRate", desc = "producerMaxRate") int producerMaxRate, @Parameter(name = "blockOnAcknowledge", desc = "blockOnAcknowledge") boolean blockOnAcknowledge, @Parameter(name = "blockOnDurableSend", desc = "blockOnDurableSend") boolean blockOnDurableSend, @Parameter(name = "blockOnNonDurableSend", desc = "blockOnNonDurableSend") boolean blockOnNonDurableSend, @Parameter(name = "autoGroup", desc = "autoGroup") boolean autoGroup, @Parameter(name = "preAcknowledge", desc = "preAcknowledge") boolean preAcknowledge, @Parameter(name = "loadBalancingPolicyClassName", desc = "loadBalancingPolicyClassName (null or blank mean use the default value)") String loadBalancingPolicyClassName, @Parameter(name = "transactionBatchSize", desc = "transactionBatchSize") int transactionBatchSize, @Parameter(name = "dupsOKBatchSize", desc = "dupsOKBatchSize") int dupsOKBatchSize, @Parameter(name = "useGlobalPools", desc = "useGlobalPools") boolean useGlobalPools, @Parameter(name = "scheduledThreadPoolMaxSize", desc = "scheduledThreadPoolMaxSize") int scheduledThreadPoolMaxSize, @Parameter(name = "threadPoolMaxSize", desc = "threadPoolMaxSize") int threadPoolMaxSize, @Parameter(name = "retryInterval", desc = "retryInterval") long retryInterval, @Parameter(name = "retryIntervalMultiplier", desc = "retryIntervalMultiplier") double retryIntervalMultiplier, @Parameter(name = "maxRetryInterval", desc = "maxRetryInterval") long maxRetryInterval, @Parameter(name = "reconnectAttempts", desc = "reconnectAttempts") int reconnectAttempts, @Parameter(name = "failoverOnInitialConnection", desc = "failoverOnInitialConnection") boolean failoverOnInitialConnection, @Parameter(name = "groupId", desc = "groupId") String groupId) throws Exception; @Operation(desc = "Destroy a JMS ConnectionFactory", impact = MBeanOperationInfo.ACTION) void destroyConnectionFactory(@Parameter(name = "name", desc = "Name of the ConnectionFactory to destroy") String name) throws Exception; /** * Lists the addresses of all the clients connected to this address. */ @Operation(desc = "List the client addresses", impact = MBeanOperationInfo.INFO) String[] listRemoteAddresses() throws Exception; /** * Lists the addresses of the clients connected to this address which matches the specified IP address. */ @Operation(desc = "List the client addresses which match the given IP Address", impact = MBeanOperationInfo.INFO) String[] listRemoteAddresses(@Parameter(desc = "an IP address", name = "ipAddress") String ipAddress) throws Exception; /** * Closes all the connections of clients connected to this server which matches the specified IP address. */ @Operation(desc = "Closes all the connections for the given IP Address", impact = MBeanOperationInfo.INFO) boolean closeConnectionsForAddress(@Parameter(desc = "an IP address", name = "ipAddress") String ipAddress) throws Exception; /** * Closes all the connections on this server for consumers which are consuming from a queue associated with a particular address. */ @Operation(desc = "Closes all the consumer connections for the given HornetQ address", impact = MBeanOperationInfo.INFO) boolean closeConsumerConnectionsForAddress(@Parameter(desc = "a HornetQ address", name = "address") String address) throws Exception; /** * Closes all the connections on this server for sessions using a particular user name. */ @Operation(desc = "Closes all the connections for session using a particular user name", impact = MBeanOperationInfo.INFO) boolean closeConnectionsForUser(@Parameter(desc = "a user name", name = "userName") String address) throws Exception; /** * Lists all the IDs of the connections connected to this server. */ @Operation(desc = "List all the connection IDs", impact = MBeanOperationInfo.INFO) String[] listConnectionIDs() throws Exception; /** * Lists all the connections connected to this server. * The returned String is a JSON string containing an array of JMSConnectionInfo objects. * * @see JMSConnectionInfo#from(String) */ @Operation(desc = "List all JMS connections") String listConnectionsAsJSON() throws Exception; /** * Lists all the sessions IDs for the specified connection ID. */ @Operation(desc = "List the sessions for the given connectionID", impact = MBeanOperationInfo.INFO) String[] listSessions(@Parameter(desc = "a connection ID", name = "connectionID") String connectionID) throws Exception; /** * Lists all the consumers which belongs to the JMS Connection specified by the connectionID. * The returned String is a JSON string containing an array of JMSConsumerInfo objects. * * @see JMSConsumerInfo#from(String) */ @Operation(desc = "List all JMS consumers associated to a JMS Connection") String listConsumersAsJSON(@Parameter(desc = "a connection ID", name = "connectionID") String connectionID) throws Exception; /** * Lists all the consumers * The returned String is a JSON string containing an array of JMSConsumerInfo objects. * * @see JMSConsumerInfo#from(String) */ @Operation(desc = "List all JMS consumers associated to a JMS Connection") String listAllConsumersAsJSON() throws Exception; /** * Lists all addresses to which the designated server session has sent messages. */ @Operation(desc = "Lists all addresses to which the designated session has sent messages", impact = MBeanOperationInfo.INFO) String[] listTargetDestinations(@Parameter(desc = "a session ID", name = "sessionID") String sessionID) throws Exception; /** * Returns the last sent message's ID from the given session to an address. */ @Operation(desc = "Returns the last sent message's ID from the given session to an address", impact = MBeanOperationInfo.INFO) String getLastSentMessageID(@Parameter(desc = "session name", name = "sessionID") String sessionID, @Parameter(desc = "address", name = "address") String address) throws Exception; /** * Gets the session's creation time. */ @Operation(desc = "Gets the sessions creation time", impact = MBeanOperationInfo.INFO) String getSessionCreationTime(@Parameter(desc = "session name", name = "sessionID") String sessionID) throws Exception; /** * Lists all the sessions IDs for the specified connection ID. */ @Operation(desc = "List the sessions for the given connectionID", impact = MBeanOperationInfo.INFO) String listSessionsAsJSON(@Parameter(desc = "a connection ID", name = "connectionID") String connectionID) throws Exception; /** * List all the prepared transaction, sorted by date, * oldest first, with details, in text format */ @Operation(desc = "List all the prepared transaction, sorted by date, oldest first, with details, in JSON format", impact = MBeanOperationInfo.INFO) String listPreparedTransactionDetailsAsJSON() throws Exception; /** * List all the prepared transaction, sorted by date, * oldest first, with details, in HTML format */ @Operation(desc = "List all the prepared transaction, sorted by date, oldest first, with details, in HTML format", impact = MBeanOperationInfo.INFO) String listPreparedTransactionDetailsAsHTML() throws Exception; /** * List all the prepared transaction, sorted by date, * oldest first, with details, in HTML format */ @Operation(desc = "Will close any connection with the given connectionID", impact = MBeanOperationInfo.INFO) String closeConnectionWithClientID(@Parameter(desc = "the clientID used to connect", name = "clientID") String clientID) throws Exception; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy