Class ActiveMQClient

java.lang.Object
org.apache.activemq.artemis.api.core.client.ActiveMQClient

public final class ActiveMQClient extends Object
Utility class for creating ActiveMQ Artemis ClientSessionFactory objects.

Once a ClientSessionFactory has been created, it can be further configured using its setter methods before creating the sessions. Once a session is created, the factory can no longer be modified (its setter methods will throw a IllegalStateException.

  • Field Details

    • DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME

      public static final String DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME
    • DEFAULT_CLIENT_FAILURE_CHECK_PERIOD

      public static final long DEFAULT_CLIENT_FAILURE_CHECK_PERIOD
    • DEFAULT_CLIENT_FAILURE_CHECK_PERIOD_INVM

      public static final long DEFAULT_CLIENT_FAILURE_CHECK_PERIOD_INVM
      See Also:
    • DEFAULT_CONNECTION_TTL

      public static final long DEFAULT_CONNECTION_TTL
    • DEFAULT_CONNECTION_TTL_INVM

      public static final long DEFAULT_CONNECTION_TTL_INVM
      See Also:
    • DEFAULT_MIN_LARGE_MESSAGE_SIZE

      public static final int DEFAULT_MIN_LARGE_MESSAGE_SIZE
      See Also:
    • DEFAULT_COMPRESS_LARGE_MESSAGES

      public static final boolean DEFAULT_COMPRESS_LARGE_MESSAGES
      See Also:
    • DEFAULT_COMPRESSION_LEVEL

      public static final int DEFAULT_COMPRESSION_LEVEL
      See Also:
    • DEFAULT_CONSUMER_WINDOW_SIZE

      public static final int DEFAULT_CONSUMER_WINDOW_SIZE
      See Also:
    • DEFAULT_CONSUMER_MAX_RATE

      public static final int DEFAULT_CONSUMER_MAX_RATE
      See Also:
    • DEFAULT_CONFIRMATION_WINDOW_SIZE

      public static final int DEFAULT_CONFIRMATION_WINDOW_SIZE
      See Also:
    • DEFAULT_PRODUCER_WINDOW_SIZE

      public static final int DEFAULT_PRODUCER_WINDOW_SIZE
      See Also:
    • DEFAULT_PRODUCER_MAX_RATE

      public static final int DEFAULT_PRODUCER_MAX_RATE
      See Also:
    • DEFAULT_BLOCK_ON_ACKNOWLEDGE

      public static final boolean DEFAULT_BLOCK_ON_ACKNOWLEDGE
      See Also:
    • DEFAULT_BLOCK_ON_DURABLE_SEND

      public static final boolean DEFAULT_BLOCK_ON_DURABLE_SEND
      See Also:
    • DEFAULT_BLOCK_ON_NON_DURABLE_SEND

      public static final boolean DEFAULT_BLOCK_ON_NON_DURABLE_SEND
      See Also:
    • DEFAULT_AUTO_GROUP

      public static final boolean DEFAULT_AUTO_GROUP
      See Also:
    • DEFAULT_CALL_TIMEOUT

      public static final long DEFAULT_CALL_TIMEOUT
      See Also:
    • DEFAULT_CALL_FAILOVER_TIMEOUT

      public static final long DEFAULT_CALL_FAILOVER_TIMEOUT
      See Also:
    • DEFAULT_ACK_BATCH_SIZE

      public static final int DEFAULT_ACK_BATCH_SIZE
      See Also:
    • DEFAULT_PRE_ACKNOWLEDGE

      public static final boolean DEFAULT_PRE_ACKNOWLEDGE
      See Also:
    • DEFAULT_ENABLED_SHARED_CLIENT_ID

      public static final boolean DEFAULT_ENABLED_SHARED_CLIENT_ID
      See Also:
    • DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT

      public static final long DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT
      See Also:
    • DEFAULT_DISCOVERY_REFRESH_TIMEOUT

      public static final long DEFAULT_DISCOVERY_REFRESH_TIMEOUT
      See Also:
    • DEFAULT_DISCOVERY_PORT

      public static final int DEFAULT_DISCOVERY_PORT
      See Also:
    • DEFAULT_RETRY_INTERVAL

      public static final long DEFAULT_RETRY_INTERVAL
      See Also:
    • DEFAULT_RETRY_INTERVAL_MULTIPLIER

      public static final double DEFAULT_RETRY_INTERVAL_MULTIPLIER
    • DEFAULT_MAX_RETRY_INTERVAL

      public static final long DEFAULT_MAX_RETRY_INTERVAL
    • DEFAULT_RECONNECT_ATTEMPTS

      public static final int DEFAULT_RECONNECT_ATTEMPTS
      See Also:
    • INITIAL_CONNECT_ATTEMPTS

      public static final int INITIAL_CONNECT_ATTEMPTS
      See Also:
    • DEFAULT_FAILOVER_ATTEMPTS

      public static final int DEFAULT_FAILOVER_ATTEMPTS
      See Also:
    • DEFAULT_FAILOVER_ON_INITIAL_CONNECTION

      @Deprecated public static final boolean DEFAULT_FAILOVER_ON_INITIAL_CONNECTION
      Deprecated.
      See Also:
    • DEFAULT_IS_HA

      public static final boolean DEFAULT_IS_HA
      See Also:
    • DEFAULT_USE_GLOBAL_POOLS

      public static final boolean DEFAULT_USE_GLOBAL_POOLS
      See Also:
    • DEFAULT_THREAD_POOL_MAX_SIZE

      public static final int DEFAULT_THREAD_POOL_MAX_SIZE
      See Also:
    • DEFAULT_GLOBAL_THREAD_POOL_MAX_SIZE

      public static final int DEFAULT_GLOBAL_THREAD_POOL_MAX_SIZE
    • DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE

      public static final int DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE
      See Also:
    • DEFAULT_FLOW_CONTROL_THREAD_POOL_MAX_SIZE

      public static final int DEFAULT_FLOW_CONTROL_THREAD_POOL_MAX_SIZE
      See Also:
    • DEFAULT_CACHE_LARGE_MESSAGE_CLIENT

      public static final boolean DEFAULT_CACHE_LARGE_MESSAGE_CLIENT
      See Also:
    • DEFAULT_INITIAL_MESSAGE_PACKET_SIZE

      public static final int DEFAULT_INITIAL_MESSAGE_PACKET_SIZE
      See Also:
    • DEFAULT_ONMESSAGE_CLOSE_TIMEOUT

      public static final int DEFAULT_ONMESSAGE_CLOSE_TIMEOUT
      See Also:
    • DEFAULT_XA

      public static final boolean DEFAULT_XA
      See Also:
    • DEFAULT_HA

      public static final boolean DEFAULT_HA
      See Also:
    • DEFAULT_CORE_PROTOCOL

      public static final String DEFAULT_CORE_PROTOCOL
      See Also:
    • DEFAULT_USE_TOPOLOGY_FOR_LOADBALANCING

      public static final boolean DEFAULT_USE_TOPOLOGY_FOR_LOADBALANCING
      See Also:
    • THREAD_POOL_MAX_SIZE_PROPERTY_KEY

      public static final String THREAD_POOL_MAX_SIZE_PROPERTY_KEY
      See Also:
    • SCHEDULED_THREAD_POOL_SIZE_PROPERTY_KEY

      public static final String SCHEDULED_THREAD_POOL_SIZE_PROPERTY_KEY
      See Also:
    • FLOW_CONTROL_THREAD_POOL_SIZE_PROPERTY_KEY

      public static final String FLOW_CONTROL_THREAD_POOL_SIZE_PROPERTY_KEY
      See Also:
  • Method Details

    • clearThreadPools

      public static void clearThreadPools()
    • clearThreadPools

      public static void clearThreadPools(long time, TimeUnit unit)
    • injectPools

      public static void injectPools(ExecutorService globalThreadPool, ScheduledExecutorService scheduledThreadPool, ExecutorService flowControlThreadPool)
      Warning: This method has to be called before any clients or servers is started on the JVM otherwise previous ServerLocator would be broken after this call.
    • getGlobalThreadPool

      public static ExecutorService getGlobalThreadPool()
    • getGlobalFlowControlThreadPool

      public static ExecutorService getGlobalFlowControlThreadPool()
    • getGlobalScheduledThreadPool

      public static ScheduledExecutorService getGlobalScheduledThreadPool()
    • getGlobalThreadPoolSize

      public static int getGlobalThreadPoolSize()
    • getGlobalScheduledThreadPoolSize

      public static int getGlobalScheduledThreadPoolSize()
    • getGlobalFlowControlThreadPoolSize

      public static int getGlobalFlowControlThreadPoolSize()
    • initializeGlobalThreadPoolProperties

      public static void initializeGlobalThreadPoolProperties()
      Initializes the global thread pools properties from System properties. This method will update the global thread pool configuration based on defined System properties (or defaults if they are not set). The System properties key names are as follow:

      ActiveMQClient.THREAD_POOL_MAX_SIZE_PROPERTY_KEY="activemq.artemis.client.global.thread.pool.max.size" ActiveMQClient.SCHEDULED_THREAD_POOL_SIZE_PROPERTY_KEY="activemq.artemis.client.global.scheduled.thread.pool.core.size

      The min value for max thread pool size is 2. If the value is not -1, but lower than 2, it will be ignored and will default to 2. A value of -1 configures an unbounded thread pool.

      Note: If global thread pools have already been created, they will not be updated with these new values.

    • setGlobalThreadPoolProperties

      public static void setGlobalThreadPoolProperties(int globalThreadMaxPoolSize, int globalScheduledThreadPoolSize, int globalFlowControlThreadPoolSize)
      Allows programmatical configuration of global thread pools properties. This method will update the global thread pool configuration based on the provided values notifying all globalThreadPoolListeners.

      Note: If global thread pools have already been created, they will not be updated with these new values.

      The min value for globalThreadMaxPoolSize is 2. If the value is not -1, but lower than 2, it will be ignored and will default to 2. A value of -1 configures an unbounded thread pool.

    • createServerLocator

      public static ServerLocator createServerLocator(String url) throws Exception
      Creates an ActiveMQConnectionFactory;
      Returns:
      the ActiveMQConnectionFactory
      Throws:
      Exception
    • createServerLocatorWithoutHA

      public static ServerLocator createServerLocatorWithoutHA(TransportConfiguration... transportConfigurations)
      Create a ServerLocator which creates session factories using a static list of transportConfigurations, the ServerLocator is not updated automatically as the cluster topology changes, and no HA backup information is propagated to the client
      Returns:
      the ServerLocator
    • createServerLocator

      public static ServerLocator createServerLocator(boolean ha, TransportConfiguration... transportConfigurations)
      Create a ServerLocator which creates session factories using a static list of transportConfigurations, the ServerLocator is not updated automatically as the cluster topology changes, and no HA backup information is propagated to the client
      Parameters:
      ha - The Locator will support topology updates and ha (this required the server to be clustered, otherwise the first connection will timeout)
      Returns:
      the ServerLocator
    • createServerLocatorWithoutHA

      public static ServerLocator createServerLocatorWithoutHA(DiscoveryGroupConfiguration groupConfiguration)
      Create a ServerLocator which creates session factories from a set of active servers, no HA backup information is propagated to the client

      The UDP address and port are used to listen for active servers in the cluster

      Returns:
      the ServerLocator
    • createServerLocator

      public static ServerLocator createServerLocator(boolean ha, DiscoveryGroupConfiguration groupConfiguration)
      Create a ServerLocator which creates session factories from a set of active servers, no HA backup information is propagated to the client The UDP address and port are used to listen for active servers in the cluster
      Parameters:
      ha - The Locator will support topology updates and ha (this required the server to be clustered, otherwise the first connection will timeout)
      Returns:
      the ServerLocator
    • createServerLocatorWithHA

      public static ServerLocator createServerLocatorWithHA(TransportConfiguration... initialServers)
      Create a ServerLocator which will receive cluster topology updates from the cluster as servers leave or join and new backups are appointed or removed.

      The initial list of servers supplied in this method is simply to make an initial connection to the cluster, once that connection is made, up to date cluster topology information is downloaded and automatically updated whenever the cluster topology changes.

      If the topology includes backup servers that information is also propagated to the client so that it can know which server to failover onto in case of active server failure.

      Parameters:
      initialServers - The initial set of servers used to make a connection to the cluster. Each one is tried in turn until a successful connection is made. Once a connection is made, the cluster topology is downloaded and the rest of the list is ignored.
      Returns:
      the ServerLocator
    • createServerLocatorWithHA

      public static ServerLocator createServerLocatorWithHA(DiscoveryGroupConfiguration groupConfiguration)
      Create a ServerLocator which will receive cluster topology updates from the cluster as servers leave or join and new backups are appointed or removed.

      The discoveryAddress and discoveryPort parameters in this method are used to listen for UDP broadcasts which contain connection information for members of the cluster. The broadcasted connection information is simply used to make an initial connection to the cluster, once that connection is made, up to date cluster topology information is downloaded and automatically updated whenever the cluster topology changes.

      If the topology includes backup servers that information is also propagated to the client so that it can know which server to failover onto in case of active server failure.

      Returns:
      the ServerLocator