Class ConnectionOptions


  • public class ConnectionOptions
    extends java.lang.Object
    Options that control the behaviour of the Connection created from them.
    • Field Detail

      • DEFAULT_DESIRED_CAPABILITIES

        public static final java.util.List<java.lang.String> DEFAULT_DESIRED_CAPABILITIES
      • DEFAULT_REQUEST_TIMEOUT

        public static final long DEFAULT_REQUEST_TIMEOUT
        See Also:
        Constant Field Values
    • Constructor Detail

      • ConnectionOptions

        public ConnectionOptions()
        Create a new ConnectionOptions instance configured with default configuration settings.
    • Method Detail

      • clone

        public ConnectionOptions clone()
        Overrides:
        clone in class java.lang.Object
      • closeTimeout

        public long closeTimeout()
        Returns:
        the timeout used when awaiting a response from the remote when a resource is closed.
      • closeTimeout

        public ConnectionOptions closeTimeout​(long closeTimeout)
        Configures the timeout used when awaiting a response from the remote that a request to close a resource such as a Connection, Session, Sender or Receiver h as been honored.
        Parameters:
        closeTimeout - Timeout value in milliseconds to wait for a remote response.
        Returns:
        this ConnectionOptions instance.
      • closeTimeout

        public ConnectionOptions closeTimeout​(long timeout,
                                              java.util.concurrent.TimeUnit units)
        Configures the timeout used when awaiting a response from the remote that a request to close a resource such as a Connection, Session, Sender or Receiver h as been honored.
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this ConnectionOptions instance.
      • openTimeout

        public long openTimeout()
        Returns:
        the timeout used when awaiting a response from the remote when a resource is opened.
      • openTimeout

        public ConnectionOptions openTimeout​(long openTimeout)
        Configures the timeout used when awaiting a response from the remote that a request to open a resource such as a Connection, Session, Sender or Receiver has been honored.
        Parameters:
        openTimeout - Timeout value in milliseconds to wait for a remote response.
        Returns:
        this ConnectionOptions instance.
      • openTimeout

        public ConnectionOptions openTimeout​(long timeout,
                                             java.util.concurrent.TimeUnit units)
        Configures the timeout used when awaiting a response from the remote that a request to open a resource such as a Connection, Session, Sender or Receiver has been honored.
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this ConnectionOptions instance.
      • sendTimeout

        public long sendTimeout()
        Returns:
        the timeout used when awaiting a response from the remote when a resource is message send.
      • sendTimeout

        public ConnectionOptions sendTimeout​(long sendTimeout)
        Configures the timeout used when awaiting a send operation to complete. A send will block if the remote has not granted the Sender or the Session credit to do so, if the send blocks for longer than this timeout the send call will fail with an ClientSendTimedOutException exception to indicate that the send did not complete.
        Parameters:
        sendTimeout - Timeout value in milliseconds to wait for a remote response.
        Returns:
        this ConnectionOptions instance.
      • sendTimeout

        public ConnectionOptions sendTimeout​(long timeout,
                                             java.util.concurrent.TimeUnit units)
        Configures the timeout used when awaiting a send operation to complete. A send will block if the remote has not granted the Sender or the Session credit to do so, if the send blocks for longer than this timeout the send call will fail with an ClientSendTimedOutException exception to indicate that the send did not complete.
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this ConnectionOptions instance.
      • requestTimeout

        public long requestTimeout()
        Returns:
        the timeout used when awaiting a response from the remote when a resource makes a request.
      • requestTimeout

        public ConnectionOptions requestTimeout​(long requestTimeout)
        Configures the timeout used when awaiting a response from the remote that a request to perform some action such as starting a new transaction. If the remote does not respond within the configured timeout the resource making the request will mark it as failed and return an error to the request initiator usually in the form of a ClientOperationTimedOutException.
        Parameters:
        requestTimeout - Timeout value in milliseconds to wait for a remote response.
        Returns:
        this ConnectionOptions instance.
      • requestTimeout

        public ConnectionOptions requestTimeout​(long timeout,
                                                java.util.concurrent.TimeUnit units)
        Configures the timeout used when awaiting a response from the remote that a request to perform some action such as starting a new transaction. If the remote does not respond within the configured timeout the resource making the request will mark it as failed and return an error to the request initiator usually in the form of a ClientOperationTimedOutException.
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this ConnectionOptions instance.
      • channelMax

        public int channelMax()
        Returns:
        the configured or default channel max value for create Connection instances.
      • channelMax

        public ConnectionOptions channelMax​(int channelMax)
        Configure the channel maximum value for the new Connection created with these options.

        The channel max value controls how many Session instances can be created by a given Connection, the default value is 65535.

        Parameters:
        channelMax - The channel max value to assign to newly created Connection instances.
        Returns:
        this ConnectionOptions instance.
      • maxFrameSize

        public int maxFrameSize()
        Returns:
        the configure maximum frame size value for newly create Connection instances.
      • maxFrameSize

        public ConnectionOptions maxFrameSize​(int maxFrameSize)
        Sets the max frame size (in bytes), values of -1 indicates to use the client selected default.
        Parameters:
        maxFrameSize - the frame size in bytes.
        Returns:
        this ConnectionOptions instance.
      • idleTimeout

        public long idleTimeout()
        Returns:
        the configured idle timeout value that will be sent to the remote.
      • idleTimeout

        public ConnectionOptions idleTimeout​(long idleTimeout)
        Sets the idle timeout (in milliseconds) after which the connection will be closed if the peer has not send any data. The provided value will be halved before being transmitted as our advertised idle-timeout in the AMQP Open frame.
        Parameters:
        idleTimeout - the timeout in milliseconds.
        Returns:
        this ConnectionOptions instance.
      • idleTimeout

        public ConnectionOptions idleTimeout​(long timeout,
                                             java.util.concurrent.TimeUnit units)
        Sets the idle timeout value after which the connection will be closed if the peer has not send any data. The provided value will be halved before being transmitted as our advertised idle-timeout in the AMQP Open frame.
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this ConnectionOptions instance.
      • drainTimeout

        public long drainTimeout()
        Returns:
        the configured drain timeout value that will use to fail a pending drain request.
      • drainTimeout

        public ConnectionOptions drainTimeout​(long drainTimeout)
        Sets the drain timeout (in milliseconds) after which a Receiver request to drain link credit is considered failed and the request will be marked as such.
        Parameters:
        drainTimeout - the drainTimeout to use for receiver links.
        Returns:
        this ConnectionOptions instance.
      • drainTimeout

        public ConnectionOptions drainTimeout​(long timeout,
                                              java.util.concurrent.TimeUnit units)
        Sets the drain timeout value after which a Receiver request to drain link credit is considered failed and the request will be marked as such.
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this ConnectionOptions instance.
      • offeredCapabilities

        public java.lang.String[] offeredCapabilities()
        Returns:
        the offeredCapabilities that have been configured.
      • offeredCapabilities

        public ConnectionOptions offeredCapabilities​(java.lang.String... offeredCapabilities)
        Sets the collection of capabilities to offer to the remote from a new Connection created using these ConnectionOptions. The offered capabilities advertise to the remote capabilities that this Connection supports.
        Parameters:
        offeredCapabilities - the offeredCapabilities to set on a new Connection.
        Returns:
        this ConnectionOptions instance.
      • desiredCapabilities

        public java.lang.String[] desiredCapabilities()
        Returns:
        the desiredCapabilities that have been configured.
      • desiredCapabilities

        public ConnectionOptions desiredCapabilities​(java.lang.String... desiredCapabilities)
        Sets the collection of capabilities to request from the remote for a new Connection created using these ConnectionOptions. The desired capabilities inform the remote peer of the various capabilities the new Connection requires and the remote should return those that it supports in its offered capabilities.
        Parameters:
        desiredCapabilities - the desiredCapabilities to set on a new Connection.
        Returns:
        this ConnectionOptions instance.
      • properties

        public java.util.Map<java.lang.String,​java.lang.Object> properties()
        Returns:
        the properties that have been configured.
      • properties

        public ConnectionOptions properties​(java.util.Map<java.lang.String,​java.lang.Object> properties)
        Sets a Map of properties to convey to the remote when a new Connection is created from these ConnectionOptions.
        Parameters:
        properties - the properties to set
        Returns:
        this ConnectionOptions instance.
      • virtualHost

        public java.lang.String virtualHost()
        Returns:
        the virtual host value configured.
      • virtualHost

        public ConnectionOptions virtualHost​(java.lang.String virtualHost)
        The virtual host value to provide to the remote when creating a new Connection.
        Parameters:
        virtualHost - the virtual host to set
        Returns:
        this ConnectionOptions instance.
      • user

        public java.lang.String user()
        Returns:
        the user name that is configured for new Connection instances.
      • user

        public ConnectionOptions user​(java.lang.String user)
        Sets the user name used when performing connection authentication.
        Parameters:
        user - the user to set
        Returns:
        this ConnectionOptions instance.
      • password

        public java.lang.String password()
        Returns:
        the password that is configured for new Connection instances.
      • password

        public ConnectionOptions password​(java.lang.String password)
        Sets the password used when performing connection authentication.
        Parameters:
        password - the password to set
        Returns:
        this ConnectionOptions instance.
      • transportOptions

        public TransportOptions transportOptions()
        Returns:
        the transport options that will be used for the Connection.
      • sslOptions

        public SslOptions sslOptions()
        Returns:
        the SSL options that will be used for the Connection.
      • saslOptions

        public SaslOptions saslOptions()
        Returns:
        the SASL options that will be used for the Connection.
      • reconnectEnabled

        public boolean reconnectEnabled()
        Returns:
        true if reconnection support has been enabled for this connection.
      • reconnectEnabled

        public ConnectionOptions reconnectEnabled​(boolean reconnectEnabled)
        Controls if the connection will attempt to reconnect if unable to connect immediately or if an existing connection fails.

        This option enables or disables reconnection to a remote remote peer after IO errors. To control specifics of the reconnection configuration for the Connection the values must be updated in the ReconnectOptions configuration prior to creating the connection.

        Parameters:
        reconnectEnabled - Controls if reconnection is enabled or not for the associated Connection.
        Returns:
        this options instance.
      • reconnectOptions

        public ReconnectOptions reconnectOptions()
        Returns:
        the reconnection options that will be used for the Connection.
      • traceFrames

        public ConnectionOptions traceFrames​(boolean traceFrames)
        Configure if the newly created connection should enabled AMQP frame tracing to the system output.
        Parameters:
        traceFrames - true if frame tracing on this connection should be enabled.
        Returns:
        this ConnectionOptions instance.
      • traceFrames

        public boolean traceFrames()
        Returns:
        true if the connection is configured to perform frame tracing.
      • sslEnabled

        public boolean sslEnabled()
        Returns:
        true if SSL support has been enabled for this connection.
      • sslEnabled

        public ConnectionOptions sslEnabled​(boolean sslEnabled)
        Controls if the connection will attempt to connect using a secure IO layer or not.

        This option enables or disables SSL encryption when connecting to a remote peer. To control specifics of the SSL configuration for the Connection the values must be updated in the SslOptions configuration prior to creating the connection.

        Parameters:
        sslEnabled - Is SSL encryption enabled for the Connection.
        Returns:
        this ConnectionOptions instance.
      • disconnectedHandler

        public java.util.function.BiConsumer<Connection,​DisconnectionEvent> disconnectedHandler()
        Returns:
        the connection failed handler currently registered.
      • disconnectedHandler

        public ConnectionOptions disconnectedHandler​(java.util.function.BiConsumer<Connection,​DisconnectionEvent> disconnectedHandler)
        Configures a handler that will be notified when the connection has failed and cannot be recovered should reconnect be enabled. Once notified of the failure the Connection is no longer operable and the Connection APIs will throw an exception to indicate that the connection has failed. The client application should close a failed Connection once it becomes aware of the failure to ensure all connection resources are cleaned up properly.
        Parameters:
        disconnectedHandler - the connection failed handler to notify when the connection fails for any reason.
        Returns:
        this ConnectionOptions instance.
        See Also:
        interruptedHandler, connectedHandler, disconnectedHandler
      • connectedHandler

        public java.util.function.BiConsumer<Connection,​ConnectionEvent> connectedHandler()
        Returns:
        the connection established handler that is currently registered
      • interruptedHandler

        public java.util.function.BiConsumer<Connection,​DisconnectionEvent> interruptedHandler()
        Returns:
        the connection interrupted handler that is currently registered
      • interruptedHandler

        public ConnectionOptions interruptedHandler​(java.util.function.BiConsumer<Connection,​DisconnectionEvent> interruptedHandler)
        Configures a handler that will be notified when the current Connection experiences an interruption. The Connection will only signal this handler when the reconnection feature is enabled and will follow this event either with a notification that the connection has been restored (if a handler is registered), or with a notification that the connection has failed if the reconnection configuration places limits on the the number of reconnection attempts.
        Parameters:
        interruptedHandler - the connection interrupted handler to assign to these ConnectionOptions.
        Returns:
        this ReconnectOptions instance.
        See Also:
        connectedHandler, reconnectedHandler, disconnectedHandler
      • reconnectedHandler

        public java.util.function.BiConsumer<Connection,​ConnectionEvent> reconnectedHandler()
        Returns:
        the connection restored handler that is currently registered