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

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

Go to download

This artifact provides a single jar that contains all classes required to use remote Jakarta Enterprise Beans and Jakarta Messaging, including all dependencies. It is intended for use by those not using maven, maven users should just import the Jakarta Enterprise Beans and Jakarta Messaging BOM's instead (shaded JAR's cause lots of problems with maven, as it is very easy to inadvertently end up with different versions on classes on the class path).

There is a newer version: 35.0.0.Beta1
Show newest version
/*
 * 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