Class StreamSenderOptions


  • public class StreamSenderOptions
    extends SenderOptions
    Options class that controls various aspects of a StreamSenderMessage instance and how a streamed message transfer is written.
    • Field Detail

      • DEFAULT_PENDING_WRITES_BUFFER_SIZE

        public static final int DEFAULT_PENDING_WRITES_BUFFER_SIZE
        Defines the default pending write buffering size which is used to control how much outgoing data can be buffered for local writing before the sender has back pressured applied to avoid out of memory conditions due to overly large pending batched writes.
        See Also:
        Constant Field Values
      • MIN_BUFFER_SIZE_LIMIT

        public static final int MIN_BUFFER_SIZE_LIMIT
        Defines the default minimum size that the context write buffer will allocate which drives the interval auto flushing of written data for this context.
        See Also:
        Constant Field Values
    • Constructor Detail

      • StreamSenderOptions

        public StreamSenderOptions()
        Creates a StreamSenderOptions instance with default values for all options
    • Method Detail

      • writeBufferSize

        public int writeBufferSize()
        Returns:
        the configured context write buffering limit for the associated StreamSender
      • writeBufferSize

        public StreamSenderOptions writeBufferSize​(int writeBufferSize)
        Sets the overall number of bytes the stream sender will buffer before automatically flushing the currently buffered bytes. By default the stream sender implementation chooses a value for this buffer limit based on the configured frame size limits of the connection.
        Parameters:
        writeBufferSize - The number of bytes that can be written before the context performs a flush operation.
        Returns:
        this StreamSenderOptions instance.
      • pendingWritesBufferSize

        public int pendingWritesBufferSize()
        Returns:
        the configured pending write buffering limit for the associated StreamSender
      • pendingWritesBufferSize

        public StreamSenderOptions pendingWritesBufferSize​(int pendingWritesBufferSize)
        Sets the overall number of bytes the stream sender will allow to be pending for write before applying back pressure to the stream write caller. By default the stream sender implementation chooses a value for this pending write limit based on the configured frame size limits of the connection. This is an advanced option and should not be used unless the impact of doing so is understood by the user.
        Parameters:
        pendingWritesBufferSize - The number of bytes that can be pending for write before the sender applies back pressure.
        Returns:
        this StreamSenderOptions instance.
      • autoSettle

        public StreamSenderOptions autoSettle​(boolean autoSettle)
        Description copied from class: SenderOptions
        Sets whether sent deliveries should be automatically locally-settled once they have become remotely-settled by the receiving peer. True by default.
        Overrides:
        autoSettle in class SenderOptions
        Parameters:
        autoSettle - whether deliveries should be auto settled locally after being settled by the receiver
        Returns:
        the sender
      • closeTimeout

        public StreamSenderOptions closeTimeout​(long closeTimeout)
        Description copied from class: SenderOptions
        Configures the timeout used when awaiting a response from the remote that a request to close the Sender link.
        Overrides:
        closeTimeout in class SenderOptions
        Parameters:
        closeTimeout - Timeout value in milliseconds to wait for a remote response.
        Returns:
        this SenderOptions instance.
      • closeTimeout

        public StreamSenderOptions closeTimeout​(long timeout,
                                                java.util.concurrent.TimeUnit units)
        Description copied from class: SenderOptions
        Configures the timeout used when awaiting a response from the remote that a request to close the Sender link.
        Overrides:
        closeTimeout in class SenderOptions
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this SenderOptions instance.
      • openTimeout

        public StreamSenderOptions openTimeout​(long openTimeout)
        Description copied from class: SenderOptions
        Configures the timeout used when awaiting a response from the remote that a request to open a Sender has been honored.
        Overrides:
        openTimeout in class SenderOptions
        Parameters:
        openTimeout - Timeout value in milliseconds to wait for a remote response.
        Returns:
        this SenderOptions instance.
      • openTimeout

        public StreamSenderOptions openTimeout​(long timeout,
                                               java.util.concurrent.TimeUnit units)
        Description copied from class: SenderOptions
        Configures the timeout used when awaiting a response from the remote that a request to open a Sender has been honored.
        Overrides:
        openTimeout in class SenderOptions
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this SenderOptions instance.
      • sendTimeout

        public StreamSenderOptions sendTimeout​(long sendTimeout)
        Description copied from class: SenderOptions
        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.
        Overrides:
        sendTimeout in class SenderOptions
        Parameters:
        sendTimeout - Timeout value in milliseconds to wait for a remote response.
        Returns:
        this SenderOptions instance.
      • sendTimeout

        public StreamSenderOptions sendTimeout​(long timeout,
                                               java.util.concurrent.TimeUnit units)
        Description copied from class: SenderOptions
        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.
        Overrides:
        sendTimeout in class SenderOptions
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this SenderOptions instance.
      • requestTimeout

        public StreamSenderOptions requestTimeout​(long requestTimeout)
        Description copied from class: SenderOptions
        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.
        Overrides:
        requestTimeout in class SenderOptions
        Parameters:
        requestTimeout - Timeout value in milliseconds to wait for a remote response.
        Returns:
        this SenderOptions instance.
      • requestTimeout

        public StreamSenderOptions requestTimeout​(long timeout,
                                                  java.util.concurrent.TimeUnit units)
        Description copied from class: SenderOptions
        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.
        Overrides:
        requestTimeout in class SenderOptions
        Parameters:
        timeout - Timeout value to wait for a remote response.
        units - The TimeUnit that defines the timeout span.
        Returns:
        this SenderOptions instance.