Class ActiveMQClient
- java.lang.Object
-
- org.apache.activemq.artemis.api.core.client.ActiveMQClient
-
public final class ActiveMQClient extends java.lang.Object
Utility class for creating ActiveMQ ArtemisClientSessionFactory
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 aIllegalStateException
.
-
-
Field Summary
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
clearThreadPools()
static void
clearThreadPools(long time, java.util.concurrent.TimeUnit unit)
static ServerLocator
createServerLocator(boolean ha, DiscoveryGroupConfiguration groupConfiguration)
Create a ServerLocator which creates session factories from a set of live servers, no HA backup information is propagated to the client The UDP address and port are used to listen for live servers in the clusterstatic 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 clientstatic ServerLocator
createServerLocator(java.lang.String url)
Creates an ActiveMQConnectionFactory;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.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.static ServerLocator
createServerLocatorWithoutHA(DiscoveryGroupConfiguration groupConfiguration)
Create a ServerLocator which creates session factories from a set of live servers, no HA backup information is propagated to the clientstatic 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 clientstatic java.util.concurrent.ScheduledExecutorService
getGlobalScheduledThreadPool()
static int
getGlobalScheduledThreadPoolSize()
static java.util.concurrent.ExecutorService
getGlobalThreadPool()
static int
getGlobalThreadPoolSize()
static void
initializeGlobalThreadPoolProperties()
Initializes the global thread pools properties from System properties.static void
injectPools(java.util.concurrent.ExecutorService globalThreadPool, java.util.concurrent.ScheduledExecutorService scheduledThreadPool)
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.static void
setGlobalThreadPoolProperties(int globalThreadMaxPoolSize, int globalScheduledThreadPoolSize)
Allows programmatical configuration of global thread pools properties.
-
-
-
Field Detail
-
DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME
public static final java.lang.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_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_AUTO_GROUP
public static final boolean DEFAULT_AUTO_GROUP
- See Also:
- Constant Field Values
-
DEFAULT_CALL_TIMEOUT
public static final long DEFAULT_CALL_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_CALL_FAILOVER_TIMEOUT
public static final long DEFAULT_CALL_FAILOVER_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_ACK_BATCH_SIZE
public static final int DEFAULT_ACK_BATCH_SIZE
- 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_DISCOVERY_PORT
public static final int DEFAULT_DISCOVERY_PORT
- 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_ON_INITIAL_CONNECTION
@Deprecated public static final boolean DEFAULT_FAILOVER_ON_INITIAL_CONNECTION
Deprecated.- See Also:
- Constant Field Values
-
DEFAULT_IS_HA
public static final boolean DEFAULT_IS_HA
- 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_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_XA
public static final boolean DEFAULT_XA
- See Also:
- Constant Field Values
-
DEFAULT_HA
public static final boolean DEFAULT_HA
- See Also:
- Constant Field Values
-
DEFAULT_CORE_PROTOCOL
public static final java.lang.String DEFAULT_CORE_PROTOCOL
- See Also:
- Constant Field Values
-
DEFAULT_USE_TOPOLOGY_FOR_LOADBALANCING
public static final boolean DEFAULT_USE_TOPOLOGY_FOR_LOADBALANCING
- See Also:
- Constant Field Values
-
THREAD_POOL_MAX_SIZE_PROPERTY_KEY
public static final java.lang.String THREAD_POOL_MAX_SIZE_PROPERTY_KEY
- See Also:
- Constant Field Values
-
SCHEDULED_THREAD_POOL_SIZE_PROPERTY_KEY
public static final java.lang.String SCHEDULED_THREAD_POOL_SIZE_PROPERTY_KEY
- See Also:
- Constant Field Values
-
-
Method Detail
-
clearThreadPools
public static void clearThreadPools()
-
clearThreadPools
public static void clearThreadPools(long time, java.util.concurrent.TimeUnit unit)
-
injectPools
public static void injectPools(java.util.concurrent.ExecutorService globalThreadPool, java.util.concurrent.ScheduledExecutorService scheduledThreadPool)
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 java.util.concurrent.ExecutorService getGlobalThreadPool()
-
getGlobalScheduledThreadPool
public static java.util.concurrent.ScheduledExecutorService getGlobalScheduledThreadPool()
-
getGlobalThreadPoolSize
public static int getGlobalThreadPoolSize()
-
getGlobalScheduledThreadPoolSize
public static int getGlobalScheduledThreadPoolSize()
-
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)
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(java.lang.String url) throws java.lang.Exception
Creates an ActiveMQConnectionFactory;- Returns:
- the ActiveMQConnectionFactory
- Throws:
java.lang.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 live servers, no HA backup information is propagated to the clientThe UDP address and port are used to listen for live 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 live servers, no HA backup information is propagated to the client The UDP address and port are used to listen for live 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 live 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 live server failure.
- Parameters:
groupConfiguration
-- Returns:
- the ServerLocator
-
-