Class 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 Detail

      • 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:
        Constant Field Values
      • DEFAULT_CONNECTION_TTL

        public static final long DEFAULT_CONNECTION_TTL
      • DEFAULT_CONNECTION_TTL_INVM

        public static final long DEFAULT_CONNECTION_TTL_INVM
        See Also:
        Constant Field Values
      • DEFAULT_MIN_LARGE_MESSAGE_SIZE

        public static final int DEFAULT_MIN_LARGE_MESSAGE_SIZE
        See Also:
        Constant Field Values
      • DEFAULT_COMPRESS_LARGE_MESSAGES

        public static final boolean DEFAULT_COMPRESS_LARGE_MESSAGES
        See Also:
        Constant Field Values
      • DEFAULT_COMPRESSION_LEVEL

        public static final int DEFAULT_COMPRESSION_LEVEL
        See Also:
        Constant Field Values
      • DEFAULT_CONSUMER_WINDOW_SIZE

        public static final int DEFAULT_CONSUMER_WINDOW_SIZE
        See Also:
        Constant Field Values
      • DEFAULT_CONSUMER_MAX_RATE

        public static final int DEFAULT_CONSUMER_MAX_RATE
        See Also:
        Constant Field Values
      • DEFAULT_CONFIRMATION_WINDOW_SIZE

        public static final int DEFAULT_CONFIRMATION_WINDOW_SIZE
        See Also:
        Constant Field Values
      • DEFAULT_PRODUCER_WINDOW_SIZE

        public static final int DEFAULT_PRODUCER_WINDOW_SIZE
        See Also:
        Constant Field Values
      • DEFAULT_PRODUCER_MAX_RATE

        public static final int DEFAULT_PRODUCER_MAX_RATE
        See Also:
        Constant Field Values
      • DEFAULT_BLOCK_ON_ACKNOWLEDGE

        public static final boolean DEFAULT_BLOCK_ON_ACKNOWLEDGE
        See Also:
        Constant Field Values
      • DEFAULT_BLOCK_ON_DURABLE_SEND

        public static final boolean DEFAULT_BLOCK_ON_DURABLE_SEND
        See Also:
        Constant Field Values
      • DEFAULT_BLOCK_ON_NON_DURABLE_SEND

        public static final boolean DEFAULT_BLOCK_ON_NON_DURABLE_SEND
        See Also:
        Constant Field Values
      • DEFAULT_CALL_FAILOVER_TIMEOUT

        public static final long DEFAULT_CALL_FAILOVER_TIMEOUT
        See Also:
        Constant Field Values
      • DEFAULT_PRE_ACKNOWLEDGE

        public static final boolean DEFAULT_PRE_ACKNOWLEDGE
        See Also:
        Constant Field Values
      • DEFAULT_ENABLED_SHARED_CLIENT_ID

        public static final boolean DEFAULT_ENABLED_SHARED_CLIENT_ID
        See Also:
        Constant Field Values
      • DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT

        public static final long DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT
        See Also:
        Constant Field Values
      • DEFAULT_DISCOVERY_REFRESH_TIMEOUT

        public static final long DEFAULT_DISCOVERY_REFRESH_TIMEOUT
        See Also:
        Constant Field Values
      • DEFAULT_RETRY_INTERVAL

        public static final long DEFAULT_RETRY_INTERVAL
        See Also:
        Constant Field Values
      • 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:
        Constant Field Values
      • INITIAL_CONNECT_ATTEMPTS

        public static final int INITIAL_CONNECT_ATTEMPTS
        See Also:
        Constant Field Values
      • DEFAULT_FAILOVER_ATTEMPTS

        public static final int DEFAULT_FAILOVER_ATTEMPTS
        See Also:
        Constant Field Values
      • DEFAULT_FAILOVER_ON_INITIAL_CONNECTION

        @Deprecated
        public static final boolean DEFAULT_FAILOVER_ON_INITIAL_CONNECTION
        Deprecated.
        See Also:
        Constant Field Values
      • DEFAULT_USE_GLOBAL_POOLS

        public static final boolean DEFAULT_USE_GLOBAL_POOLS
        See Also:
        Constant Field Values
      • DEFAULT_THREAD_POOL_MAX_SIZE

        public static final int DEFAULT_THREAD_POOL_MAX_SIZE
        See Also:
        Constant Field Values
      • 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:
        Constant Field Values
      • DEFAULT_FLOW_CONTROL_THREAD_POOL_MAX_SIZE

        public static final int DEFAULT_FLOW_CONTROL_THREAD_POOL_MAX_SIZE
        See Also:
        Constant Field Values
      • DEFAULT_CACHE_LARGE_MESSAGE_CLIENT

        public static final boolean DEFAULT_CACHE_LARGE_MESSAGE_CLIENT
        See Also:
        Constant Field Values
      • DEFAULT_INITIAL_MESSAGE_PACKET_SIZE

        public static final int DEFAULT_INITIAL_MESSAGE_PACKET_SIZE
        See Also:
        Constant Field Values
      • DEFAULT_USE_TOPOLOGY_FOR_LOADBALANCING

        public static final boolean DEFAULT_USE_TOPOLOGY_FOR_LOADBALANCING
        See Also:
        Constant Field Values
      • SCHEDULED_THREAD_POOL_SIZE_PROPERTY_KEY

        public static final String SCHEDULED_THREAD_POOL_SIZE_PROPERTY_KEY
        See Also:
        Constant Field Values
      • FLOW_CONTROL_THREAD_POOL_SIZE_PROPERTY_KEY

        public static final String FLOW_CONTROL_THREAD_POOL_SIZE_PROPERTY_KEY
        See Also:
        Constant Field Values
    • Method Detail

      • 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()
      • 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
        Parameters:
        transportConfigurations -
        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)
        transportConfigurations -
        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

        Parameters:
        groupConfiguration -
        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)
        groupConfiguration -
        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.

        Parameters:
        groupConfiguration -
        Returns:
        the ServerLocator