Class JmsConnectionFactory
- java.lang.Object
-
- org.apache.qpid.jms.jndi.JNDIStorable
-
- org.apache.qpid.jms.JmsConnectionFactory
-
- All Implemented Interfaces:
java.io.Externalizable
,java.io.Serializable
,javax.jms.ConnectionFactory
,javax.jms.QueueConnectionFactory
,javax.jms.TopicConnectionFactory
,javax.naming.Referenceable
public class JmsConnectionFactory extends JNDIStorable implements javax.jms.ConnectionFactory, javax.jms.QueueConnectionFactory, javax.jms.TopicConnectionFactory
JMS ConnectionFactory Implementation.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
REMOTE_URI_PROP
-
Constructor Summary
Constructors Constructor Description JmsConnectionFactory()
JmsConnectionFactory(java.lang.String remoteURI)
JmsConnectionFactory(java.lang.String username, java.lang.String password)
JmsConnectionFactory(java.lang.String userName, java.lang.String password, java.lang.String remoteURI)
JmsConnectionFactory(java.lang.String userName, java.lang.String password, java.net.URI remoteURI)
JmsConnectionFactory(java.net.URI remoteURI)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Map<java.lang.String,java.lang.String>
buildFromProperties(java.util.Map<java.lang.String,java.lang.String> props)
Set the properties that will represent the instance in JNDIprotected JmsConnectionInfo
configureConnectionInfo(java.lang.String username, java.lang.String password)
javax.jms.Connection
createConnection()
javax.jms.Connection
createConnection(java.lang.String username, java.lang.String password)
javax.jms.JMSContext
createContext()
javax.jms.JMSContext
createContext(int sessionMode)
javax.jms.JMSContext
createContext(java.lang.String username, java.lang.String password)
javax.jms.JMSContext
createContext(java.lang.String username, java.lang.String password, int sessionMode)
protected Provider
createProvider(java.net.URI remoteURI)
javax.jms.QueueConnection
createQueueConnection()
javax.jms.QueueConnection
createQueueConnection(java.lang.String username, java.lang.String password)
javax.jms.TopicConnection
createTopicConnection()
javax.jms.TopicConnection
createTopicConnection(java.lang.String username, java.lang.String password)
protected static java.net.URI
createURI(java.lang.String name)
java.lang.String
getClientID()
protected IdGenerator
getClientIdGenerator()
java.lang.String
getClientIDPrefix()
long
getCloseTimeout()
Gets the currently set close timeout.protected IdGenerator
getConnectionIdGenerator()
long
getConnectTimeout()
Returns the currently configured wire level connect timeout.static java.lang.String
getDefaultRemoteAddress()
JmsDeserializationPolicy
getDeserializationPolicy()
javax.jms.ExceptionListener
getExceptionListener()
Gets the currently configured JMS ExceptionListener that will be set on all new Connection objects created from this factory.JmsMessageIDPolicy
getMessageIDPolicy()
java.lang.String
getPassword()
JmsPrefetchPolicy
getPrefetchPolicy()
JmsPresettlePolicy
getPresettlePolicy()
java.lang.String
getQueuePrefix()
Returns the prefix applied to Queues that are created by the client.JmsRedeliveryPolicy
getRedeliveryPolicy()
Returns the JmsRedeliveryPolicy that is applied when a new connection is created.java.lang.String
getRemoteURI()
long
getRequestTimeout()
long
getSendTimeout()
java.lang.String
getTopicPrefix()
Returns the prefix applied to Topics that are created by the client.JmsTracer
getTracer()
Gets any tracer previously set explicitly on the connection factory usingsetTracer(JmsTracer)
.java.lang.String
getTracing()
java.lang.String
getUsername()
boolean
isAwaitClientID()
boolean
isCloseLinksThatFailOnReconnect()
boolean
isForceAsyncAcks()
boolean
isForceAsyncSend()
boolean
isForceSyncSend()
Returns true if the client should always send messages using a synchronous send operation regardless of persistence mode, or inside a transaction.boolean
isLocalMessageExpiry()
boolean
isLocalMessagePriority()
boolean
isPopulateJMSXUserID()
boolean
isReceiveLocalOnly()
boolean
isReceiveNoWaitLocalOnly()
boolean
isUseDaemonThread()
boolean
isValidatePropertyNames()
boolean
isValidateSelector()
protected void
populateProperties(java.util.Map<java.lang.String,java.lang.String> props)
Initialize the instance from properties stored in JNDIvoid
setAwaitClientID(boolean awaitClientID)
Controls whether the client will wait for a ClientID value to be set or the Connection to be used before it will attempt to complete the AMQP connection Open process.void
setClientID(java.lang.String clientID)
Sets the JMS clientID to use for connections created by this factory.protected void
setClientIdGenerator(IdGenerator clientIdGenerator)
void
setClientIDPrefix(java.lang.String clientIDPrefix)
Sets the prefix used by auto-generated JMS Client ID values which are used if the JMS client does not explicitly specify one.void
setCloseLinksThatFailOnReconnect(boolean closeLinksThatFailOnReconnect)
Controls how the client manages errors on recreation of a link (producer / consumer) during a failover reconnect attempt (defaults to false).void
setCloseTimeout(long closeTimeout)
Sets the close timeout used to control how long a Connection close will wait for clean shutdown of the connection before giving up.protected void
setConnectionIdGenerator(IdGenerator connectionIdGenerator)
void
setConnectionIDPrefix(java.lang.String connectionIDPrefix)
Sets the prefix used by connection id generator.void
setConnectTimeout(long connectTimeout)
Sets the timeout value used to control how long a client will wait for a successful connection to the remote peer to be established before considering the attempt to have failed.void
setDeserializationPolicy(JmsDeserializationPolicy deserializationPolicy)
Sets the JmsDeserializationPolicy that is applied when a new connection is created.void
setExceptionListener(javax.jms.ExceptionListener exceptionListener)
Sets the JMS ExceptionListener that will be set on all new Connection objects created from this factory.void
setExtension(java.lang.String extensionName, java.util.function.BiFunction<javax.jms.Connection,java.net.URI,java.lang.Object> extension)
Provides an entry point for extensions to be configured on thisConnectionFactory
.void
setForceAsyncAcks(boolean forceAsyncAcks)
Should the message acknowledgments from a consumer be sent synchronously or asynchronously.void
setForceAsyncSend(boolean forceAsyncSend)
void
setForceSyncSend(boolean forceSyncSend)
Configures whether or not the client will always send messages synchronously or not regardless of other factors that might result in an asynchronous send.void
setLocalMessageExpiry(boolean localMessageExpiry)
Controls whether message expiration checking is done locally (in addition to any broker side checks) in each MessageConsumer prior to dispatching a message.void
setLocalMessagePriority(boolean localMessagePriority)
Enables client-side message priority support in MessageConsumer instances.void
setMessageIDPolicy(JmsMessageIDPolicy messageIDPolicy)
Sets the JmsMessageIDPolicy that is use to configure the JmsMessageIDBuilder that is assigned to any new MessageProducer created from Connection instances that this factory has created.void
setPassword(java.lang.String password)
void
setPopulateJMSXUserID(boolean populateJMSXUserID)
Controls whether message sent from the Connection will have the JMSXUserID message property populated with the authenticated user ID of the Connection.void
setPrefetchPolicy(JmsPrefetchPolicy prefetchPolicy)
void
setPresettlePolicy(JmsPresettlePolicy presettlePolicy)
Sets the JmsPresettlePolicy that is applied to MessageProducers.void
setQueuePrefix(java.lang.String queuePrefix)
void
setReceiveLocalOnly(boolean receiveLocalOnly)
Controls whether the client only checks its local message buffer when using receive calls with a timeout, or will instead drain remaining credit from the remote peer to ensure there are really no messages available if the timeout expires before a message arrives in the consumers local buffer.void
setReceiveNoWaitLocalOnly(boolean receiveNoWaitLocalOnly)
Controls whether the client only checks its local message buffer when using receiveNoWait calls, or will instead drain remaining credit from the remote peer synchronously to ensure there are really no messages available that have yet to arrive in the consumers local buffer.void
setRedeliveryPolicy(JmsRedeliveryPolicy redeliveryPolicy)
Sets the JmsRedeliveryPolicy that is applied when a new connection is created.void
setRemoteURI(java.lang.String remoteURI)
void
setRequestTimeout(long requestTimeout)
void
setSendTimeout(long sendTimeout)
void
setSslContext(javax.net.ssl.SSLContext sslContext)
Sets an SSLContext to use when creating an SSL/TLS secured connection with this factory.void
setTopicPrefix(java.lang.String topicPrefix)
void
setTracer(JmsTracer tracer)
Explicitly sets a tracer instance for use by the connection(s) created from the factory.void
setTracing(java.lang.String tracing)
Sets the type name for a tracing provider to use for the connection(s) created using the factory.void
setUseDaemonThread(boolean useDaemonThread)
Sets whether the Connection created will ensure that there is at least one non-daemon thread running at all times.void
setUsername(java.lang.String username)
void
setValidatePropertyNames(boolean validatePropertyNames)
void
setValidateSelector(boolean validateSelector)
Sets whether local validation is performed of a consumers message selector string conforming to the JMS selector syntax.-
Methods inherited from class org.apache.qpid.jms.jndi.JNDIStorable
getProperties, getProperty, getReference, readExternal, setProperties, writeExternal
-
-
-
-
Field Detail
-
REMOTE_URI_PROP
public static final java.lang.String REMOTE_URI_PROP
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
JmsConnectionFactory
public JmsConnectionFactory()
-
JmsConnectionFactory
public JmsConnectionFactory(java.lang.String username, java.lang.String password)
-
JmsConnectionFactory
public JmsConnectionFactory(java.lang.String remoteURI)
-
JmsConnectionFactory
public JmsConnectionFactory(java.lang.String userName, java.lang.String password, java.lang.String remoteURI)
-
JmsConnectionFactory
public JmsConnectionFactory(java.net.URI remoteURI)
-
JmsConnectionFactory
public JmsConnectionFactory(java.lang.String userName, java.lang.String password, java.net.URI remoteURI)
-
-
Method Detail
-
buildFromProperties
protected java.util.Map<java.lang.String,java.lang.String> buildFromProperties(java.util.Map<java.lang.String,java.lang.String> props)
Description copied from class:JNDIStorable
Set the properties that will represent the instance in JNDI- Specified by:
buildFromProperties
in classJNDIStorable
- Parameters:
props
- The properties to use when building the new isntance.- Returns:
- a new, unmodifiable, map containing any unused properties, or empty if none were.
-
populateProperties
protected void populateProperties(java.util.Map<java.lang.String,java.lang.String> props)
Description copied from class:JNDIStorable
Initialize the instance from properties stored in JNDI- Specified by:
populateProperties
in classJNDIStorable
- Parameters:
props
- The properties to use when initializing the new instance.
-
createTopicConnection
public javax.jms.TopicConnection createTopicConnection() throws javax.jms.JMSException
- Specified by:
createTopicConnection
in interfacejavax.jms.TopicConnectionFactory
- Throws:
javax.jms.JMSException
-
createTopicConnection
public javax.jms.TopicConnection createTopicConnection(java.lang.String username, java.lang.String password) throws javax.jms.JMSException
- Specified by:
createTopicConnection
in interfacejavax.jms.TopicConnectionFactory
- Throws:
javax.jms.JMSException
-
createConnection
public javax.jms.Connection createConnection() throws javax.jms.JMSException
- Specified by:
createConnection
in interfacejavax.jms.ConnectionFactory
- Throws:
javax.jms.JMSException
-
createConnection
public javax.jms.Connection createConnection(java.lang.String username, java.lang.String password) throws javax.jms.JMSException
- Specified by:
createConnection
in interfacejavax.jms.ConnectionFactory
- Throws:
javax.jms.JMSException
-
createQueueConnection
public javax.jms.QueueConnection createQueueConnection() throws javax.jms.JMSException
- Specified by:
createQueueConnection
in interfacejavax.jms.QueueConnectionFactory
- Throws:
javax.jms.JMSException
-
createQueueConnection
public javax.jms.QueueConnection createQueueConnection(java.lang.String username, java.lang.String password) throws javax.jms.JMSException
- Specified by:
createQueueConnection
in interfacejavax.jms.QueueConnectionFactory
- Throws:
javax.jms.JMSException
-
configureConnectionInfo
protected JmsConnectionInfo configureConnectionInfo(java.lang.String username, java.lang.String password) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
createContext
public javax.jms.JMSContext createContext()
- Specified by:
createContext
in interfacejavax.jms.ConnectionFactory
-
createContext
public javax.jms.JMSContext createContext(int sessionMode)
- Specified by:
createContext
in interfacejavax.jms.ConnectionFactory
-
createContext
public javax.jms.JMSContext createContext(java.lang.String username, java.lang.String password)
- Specified by:
createContext
in interfacejavax.jms.ConnectionFactory
-
createContext
public javax.jms.JMSContext createContext(java.lang.String username, java.lang.String password, int sessionMode)
- Specified by:
createContext
in interfacejavax.jms.ConnectionFactory
-
createProvider
protected Provider createProvider(java.net.URI remoteURI) throws java.lang.Exception
- Throws:
java.lang.Exception
-
createURI
protected static java.net.URI createURI(java.lang.String name)
-
getConnectionIdGenerator
protected IdGenerator getConnectionIdGenerator()
-
setConnectionIdGenerator
protected void setConnectionIdGenerator(IdGenerator connectionIdGenerator)
-
getRemoteURI
public java.lang.String getRemoteURI()
- Returns:
- the remoteURI
-
setRemoteURI
public void setRemoteURI(java.lang.String remoteURI)
- Parameters:
remoteURI
- the remoteURI to set
-
getUsername
public java.lang.String getUsername()
- Returns:
- the user name used for connection authentication.
-
setUsername
public void setUsername(java.lang.String username)
- Parameters:
username
- the user name to set
-
getPassword
public java.lang.String getPassword()
- Returns:
- the password set for connection authentication.
-
setPassword
public void setPassword(java.lang.String password)
- Parameters:
password
- the password to set
-
isForceSyncSend
public boolean isForceSyncSend()
Returns true if the client should always send messages using a synchronous send operation regardless of persistence mode, or inside a transaction.- Returns:
- true if sends should always be done synchronously.
-
setForceSyncSend
public void setForceSyncSend(boolean forceSyncSend)
Configures whether or not the client will always send messages synchronously or not regardless of other factors that might result in an asynchronous send.- Parameters:
forceSyncSend
- if true sends are always done synchronously.
-
isForceAsyncSend
public boolean isForceAsyncSend()
-
setForceAsyncSend
public void setForceAsyncSend(boolean forceAsyncSend)
-
isLocalMessagePriority
public boolean isLocalMessagePriority()
- Returns:
- the localMessagePriority configuration option.
-
setLocalMessagePriority
public void setLocalMessagePriority(boolean localMessagePriority)
Enables client-side message priority support in MessageConsumer instances. This results in all prefetched messages being dispatched in priority order.- Parameters:
localMessagePriority
- the messagePrioritySupported to set
-
getQueuePrefix
public java.lang.String getQueuePrefix()
Returns the prefix applied to Queues that are created by the client.- Returns:
- the currently configured Queue prefix.
-
setQueuePrefix
public void setQueuePrefix(java.lang.String queuePrefix)
-
getTopicPrefix
public java.lang.String getTopicPrefix()
Returns the prefix applied to Topics that are created by the client.- Returns:
- the currently configured Topic prefix.
-
setTopicPrefix
public void setTopicPrefix(java.lang.String topicPrefix)
-
isValidatePropertyNames
public boolean isValidatePropertyNames()
-
setValidatePropertyNames
public void setValidatePropertyNames(boolean validatePropertyNames)
-
isValidateSelector
public boolean isValidateSelector()
-
setValidateSelector
public void setValidateSelector(boolean validateSelector)
Sets whether local validation is performed of a consumers message selector string conforming to the JMS selector syntax. Default is true.- Parameters:
validateSelector
- whether to validate consumer message selector strings
-
getCloseTimeout
public long getCloseTimeout()
Gets the currently set close timeout.- Returns:
- the currently set close timeout.
-
setCloseTimeout
public void setCloseTimeout(long closeTimeout)
Sets the close timeout used to control how long a Connection close will wait for clean shutdown of the connection before giving up. A negative value means wait forever. Care should be taken in that a very short close timeout can cause the client to not cleanly shutdown the connection and it's resources.- Parameters:
closeTimeout
- time in milliseconds to wait for a clean connection close.
-
getConnectTimeout
public long getConnectTimeout()
Returns the currently configured wire level connect timeout.- Returns:
- the currently configured wire level connect timeout.
-
setConnectTimeout
public void setConnectTimeout(long connectTimeout)
Sets the timeout value used to control how long a client will wait for a successful connection to the remote peer to be established before considering the attempt to have failed. This value does not control socket level connection timeout but rather connection handshake at the wire level, to control the socket level timeouts use the standard socket options configuration values.- Parameters:
connectTimeout
- the time in milliseconds to wait for the protocol connection handshake to complete.
-
getSendTimeout
public long getSendTimeout()
-
setSendTimeout
public void setSendTimeout(long sendTimeout)
-
getRequestTimeout
public long getRequestTimeout()
-
setRequestTimeout
public void setRequestTimeout(long requestTimeout)
-
getPrefetchPolicy
public JmsPrefetchPolicy getPrefetchPolicy()
-
setPrefetchPolicy
public void setPrefetchPolicy(JmsPrefetchPolicy prefetchPolicy)
-
getRedeliveryPolicy
public JmsRedeliveryPolicy getRedeliveryPolicy()
Returns the JmsRedeliveryPolicy that is applied when a new connection is created.- Returns:
- the redeliveryPolicy that is currently configured for this factory.
-
setRedeliveryPolicy
public void setRedeliveryPolicy(JmsRedeliveryPolicy redeliveryPolicy)
Sets the JmsRedeliveryPolicy that is applied when a new connection is created.- Parameters:
redeliveryPolicy
- The new redeliveryPolicy to set
-
getPresettlePolicy
public JmsPresettlePolicy getPresettlePolicy()
- Returns:
- the presettlePolicy that is currently configured.
-
setPresettlePolicy
public void setPresettlePolicy(JmsPresettlePolicy presettlePolicy)
Sets the JmsPresettlePolicy that is applied to MessageProducers.- Parameters:
presettlePolicy
- the presettlePolicy to use by connections created from this factory.
-
getMessageIDPolicy
public JmsMessageIDPolicy getMessageIDPolicy()
- Returns:
- the messageIDPolicy that is currently configured.
-
setMessageIDPolicy
public void setMessageIDPolicy(JmsMessageIDPolicy messageIDPolicy)
Sets the JmsMessageIDPolicy that is use to configure the JmsMessageIDBuilder that is assigned to any new MessageProducer created from Connection instances that this factory has created.- Parameters:
messageIDPolicy
- the messageIDPolicy to use by connections created from this factory.
-
getDeserializationPolicy
public JmsDeserializationPolicy getDeserializationPolicy()
- Returns:
- the deserializationPolicy that is currently configured.
-
setDeserializationPolicy
public void setDeserializationPolicy(JmsDeserializationPolicy deserializationPolicy)
Sets the JmsDeserializationPolicy that is applied when a new connection is created.- Parameters:
deserializationPolicy
- the deserializationPolicy that will be applied to new connections.
-
getClientIDPrefix
public java.lang.String getClientIDPrefix()
- Returns:
- the currently configured client ID prefix for auto-generated client IDs.
-
setClientIDPrefix
public void setClientIDPrefix(java.lang.String clientIDPrefix)
Sets the prefix used by auto-generated JMS Client ID values which are used if the JMS client does not explicitly specify one.- Parameters:
clientIDPrefix
- the value to use as a prefix on auto-generated client IDs.
-
getClientIdGenerator
protected IdGenerator getClientIdGenerator()
-
setClientIdGenerator
protected void setClientIdGenerator(IdGenerator clientIdGenerator)
-
getClientID
public java.lang.String getClientID()
-
setClientID
public void setClientID(java.lang.String clientID)
Sets the JMS clientID to use for connections created by this factory. NOTE: A clientID can only be used by one Connection at a time, so setting it here will restrict the ConnectionFactory to creating a single open Connection at a time. It is possible to set the clientID on the Connection itself immediately after creation if no value has been set via the factory that created it, which will allow the factory to create multiple open connections at a time.- Parameters:
clientID
- The clientID to assign when creating a new connection.
-
setConnectionIDPrefix
public void setConnectionIDPrefix(java.lang.String connectionIDPrefix)
Sets the prefix used by connection id generator.- Parameters:
connectionIDPrefix
- The string prefix used on all connection Id's created by this factory.
-
getExceptionListener
public javax.jms.ExceptionListener getExceptionListener()
Gets the currently configured JMS ExceptionListener that will be set on all new Connection objects created from this factory. NOTE: the listener object is not saved when serializing the factory.- Returns:
- the currently configured JMS ExceptionListener.
-
setExceptionListener
public void setExceptionListener(javax.jms.ExceptionListener exceptionListener)
Sets the JMS ExceptionListener that will be set on all new Connection objects created from this factory.- Parameters:
exceptionListener
- the JMS ExceptionListener to apply to new Connection's or null to clear.
-
isForceAsyncAcks
public boolean isForceAsyncAcks()
- Returns:
- true if consumer acknowledgments are sent asynchronously or not.
-
setForceAsyncAcks
public void setForceAsyncAcks(boolean forceAsyncAcks)
Should the message acknowledgments from a consumer be sent synchronously or asynchronously. Sending the acknowledgments asynchronously can increase the performance of a consumer but opens up the possibility of a missed message acknowledge should the connection be unstable.- Parameters:
forceAsyncAcks
- true to have the client send all message acknowledgments asynchronously.
-
isLocalMessageExpiry
public boolean isLocalMessageExpiry()
- Returns:
- true if MessageConsumer instance will check for expired messages locally before dispatch.
-
setLocalMessageExpiry
public void setLocalMessageExpiry(boolean localMessageExpiry)
Controls whether message expiration checking is done locally (in addition to any broker side checks) in each MessageConsumer prior to dispatching a message. Disabling this check can lead to consumption of expired messages.- Parameters:
localMessageExpiry
- controls whether expiration checking is done prior to dispatch.
-
isReceiveLocalOnly
public boolean isReceiveLocalOnly()
-
setReceiveLocalOnly
public void setReceiveLocalOnly(boolean receiveLocalOnly)
Controls whether the client only checks its local message buffer when using receive calls with a timeout, or will instead drain remaining credit from the remote peer to ensure there are really no messages available if the timeout expires before a message arrives in the consumers local buffer.- Parameters:
receiveLocalOnly
- true if receive calls with a timeout should only check the local message buffer.
-
isReceiveNoWaitLocalOnly
public boolean isReceiveNoWaitLocalOnly()
-
setReceiveNoWaitLocalOnly
public void setReceiveNoWaitLocalOnly(boolean receiveNoWaitLocalOnly)
Controls whether the client only checks its local message buffer when using receiveNoWait calls, or will instead drain remaining credit from the remote peer synchronously to ensure there are really no messages available that have yet to arrive in the consumers local buffer.- Parameters:
receiveNoWaitLocalOnly
- true if receiveNoWait calls should only check the local message buffer.
-
isPopulateJMSXUserID
public boolean isPopulateJMSXUserID()
-
setPopulateJMSXUserID
public void setPopulateJMSXUserID(boolean populateJMSXUserID)
Controls whether message sent from the Connection will have the JMSXUserID message property populated with the authenticated user ID of the Connection. When false all messages sent from the Connection will not carry any value in the JMSXUserID property regardless of it being manually set on the Message to prevent a client spoofing the JMSXUserID value.- Parameters:
populateJMSXUserID
- true if message sent from this connection should have the JMSXUserID value populated.
-
setSslContext
public void setSslContext(javax.net.ssl.SSLContext sslContext)
Sets an SSLContext to use when creating an SSL/TLS secured connection with this factory. The URI must still be configured to indicate a secure connection should be created. Using this method overrides the effect of URI/System property configuration relating to the location/credentials/type of SSL key/trust stores and whether to trust all certificates or use a particular keyAlias.- Parameters:
sslContext
- the sslContext to use, or null to respect the URI/System property configuration again.
-
isAwaitClientID
public boolean isAwaitClientID()
-
setAwaitClientID
public void setAwaitClientID(boolean awaitClientID)
Controls whether the client will wait for a ClientID value to be set or the Connection to be used before it will attempt to complete the AMQP connection Open process.By default a newly created Connection that does not have a ClientID configured in the URI will wait until a call to setClientID or some other interaction with the Connection API occurs before finishing the AMQP connection Open process with the remote peer. In some cases if this takes too long the remote can disconnect as a way of defending against denial of service attacks. If the user does not plan on setting a ClientID then this option allows for immediate AMQP connection Open completion and avoids the case where the remote peer might drop the Connection if it isn't used promptly.
This value defaults to true.
- Parameters:
awaitClientID
- the whether to wait for the client ID to be set before activating the connection.
-
isUseDaemonThread
public boolean isUseDaemonThread()
-
setUseDaemonThread
public void setUseDaemonThread(boolean useDaemonThread)
Sets whether the Connection created will ensure that there is at least one non-daemon thread running at all times.- Parameters:
useDaemonThread
- controls whether the Connection maintains a non-daemon thread.
-
isCloseLinksThatFailOnReconnect
public boolean isCloseLinksThatFailOnReconnect()
- Returns:
- whether links that fail to be created during failover reconnect are closed or not.
-
setCloseLinksThatFailOnReconnect
public void setCloseLinksThatFailOnReconnect(boolean closeLinksThatFailOnReconnect)
Controls how the client manages errors on recreation of a link (producer / consumer) during a failover reconnect attempt (defaults to false).When false the failure of a link recreation operation while reestablishing a failed connection results in the client failing that reconnect attempt and retrying the entire connection process again. This can be disabled by setting this option to true in which case the client will close the producer or consumer associated with the failed link create attempt and continue rebuilding the client resources for the newly reestablished connection. When failing a consumer link the client will trigger the
ExceptionListener
assigned to the Connection if the link that failed was a consumer and that consumer had an associated JMSMessageListener
.- Parameters:
closeLinksThatFailOnReconnect
- whether to close links that fail to establish on failover reconnect.
-
setExtension
public void setExtension(java.lang.String extensionName, java.util.function.BiFunction<javax.jms.Connection,java.net.URI,java.lang.Object> extension)
Provides an entry point for extensions to be configured on thisConnectionFactory
.If a previous extension with the same name is present it is replaced with the new value or cleared if the value is null.
- Parameters:
extensionName
- The name of the extension point being added.extension
- The Function that implements the extension.- See Also:
JmsConnectionExtensions
-
setTracing
public void setTracing(java.lang.String tracing)
Sets the type name for a tracing provider to use for the connection(s) created using the factory.- Parameters:
tracing
- The tracing provider type name to set
-
getTracing
public java.lang.String getTracing()
-
setTracer
public void setTracer(JmsTracer tracer)
Explicitly sets a tracer instance for use by the connection(s) created from the factory. Using this method overrides any implicit creation of a tracer due to use of either URI configuration option or thesetTracing(String)
method. The provided tracer will have its close method called when a created connection/context is closed, so if a tracer is to be used across multiple such connections created by this factory then the close method should handle that appropriately, e.g no-op and have the application and/or underlying tracing implementation cleanup at shutdown. If no Connection/JMSContext object is returned from a creation attempt due to an exception being thrown, the tracer provided will not have its close method called and the application or underlying tracing implementation is responsible for any cleanup required.- Parameters:
tracer
- The tracer to set
-
getTracer
public JmsTracer getTracer()
Gets any tracer previously set explicitly on the connection factory usingsetTracer(JmsTracer)
. Does not return any tracer created implicitly due to use of either URI configuration option or thesetTracing(String)
method.- Returns:
- the tracer previously set, or null if none was set.
-
getDefaultRemoteAddress
public static java.lang.String getDefaultRemoteAddress()
- Returns:
- the default remote address to connect to in the event that none was set.
-
-