Class Configuration

java.lang.Object
io.aeron.driver.Configuration

public final class Configuration extends Object
Configuration options for the MediaDriver.
  • Field Details

    • DIR_WARN_IF_EXISTS_PROP_NAME

      public static final String DIR_WARN_IF_EXISTS_PROP_NAME
      Warn if the Aeron directory exists.
      See Also:
    • DIR_DELETE_ON_START_PROP_NAME

      public static final String DIR_DELETE_ON_START_PROP_NAME
      Should the Media Driver attempt to immediately delete the directory CommonContext.AERON_DIR_PROP_NAME on start if it exists before performing any additional checks.
      See Also:
    • DIR_DELETE_ON_SHUTDOWN_PROP_NAME

      public static final String DIR_DELETE_ON_SHUTDOWN_PROP_NAME
      Should driver attempt to delete CommonContext.AERON_DIR_PROP_NAME on shutdown.
      See Also:
    • USE_WINDOWS_HIGH_RES_TIMER_PROP_NAME

      public static final String USE_WINDOWS_HIGH_RES_TIMER_PROP_NAME
      Should high resolution timer be used on Windows.
      See Also:
    • TETHER_SUBSCRIPTIONS_PROP_NAME

      public static final String TETHER_SUBSCRIPTIONS_PROP_NAME
      Property name for default boolean value for if subscriptions should have a tether for local flow control.
      See Also:
    • RELIABLE_STREAM_PROP_NAME

      public static final String RELIABLE_STREAM_PROP_NAME
      Property name for default boolean value for if a stream is reliable. True to NAK, false to gap fill.
      See Also:
    • TERM_BUFFER_SPARSE_FILE_PROP_NAME

      public static final String TERM_BUFFER_SPARSE_FILE_PROP_NAME
      Property name for boolean value of term buffers should be created sparse.
      See Also:
    • GROUP_RECEIVER_CONSIDERATION_PROP_NAME

      public static final String GROUP_RECEIVER_CONSIDERATION_PROP_NAME
      Property name for default boolean value for if subscriptions should be considered a group member or individual.
      See Also:
    • FILE_PAGE_SIZE_PROP_NAME

      public static final String FILE_PAGE_SIZE_PROP_NAME
      Property name for page size to align all files to.
      See Also:
    • FILE_PAGE_SIZE_DEFAULT

      public static final int FILE_PAGE_SIZE_DEFAULT
      Default page size for alignment of all files.
      See Also:
    • PERFORM_STORAGE_CHECKS_PROP_NAME

      public static final String PERFORM_STORAGE_CHECKS_PROP_NAME
      Property name for boolean value for if storage checks should be performed when allocating files.
      See Also:
    • TERM_BUFFER_LENGTH_PROP_NAME

      public static final String TERM_BUFFER_LENGTH_PROP_NAME
      Length (in bytes) of the log buffers for UDP publication terms.
      See Also:
    • TERM_BUFFER_LENGTH_DEFAULT

      public static final int TERM_BUFFER_LENGTH_DEFAULT
      Default term buffer length.
      See Also:
    • IPC_TERM_BUFFER_LENGTH_PROP_NAME

      public static final String IPC_TERM_BUFFER_LENGTH_PROP_NAME
      Length (in bytes) of the log buffers for IPC publication terms.
      See Also:
    • TERM_BUFFER_IPC_LENGTH_DEFAULT

      public static final int TERM_BUFFER_IPC_LENGTH_DEFAULT
      Default IPC term buffer length.
      See Also:
    • LOW_FILE_STORE_WARNING_THRESHOLD_PROP_NAME

      public static final String LOW_FILE_STORE_WARNING_THRESHOLD_PROP_NAME
      Property name low file storage warning threshold in bytes.
      See Also:
    • LOW_FILE_STORE_WARNING_THRESHOLD_DEFAULT

      public static final long LOW_FILE_STORE_WARNING_THRESHOLD_DEFAULT
      Default value in bytes for low file storage warning threshold.
      See Also:
    • CONDUCTOR_BUFFER_LENGTH_PROP_NAME

      public static final String CONDUCTOR_BUFFER_LENGTH_PROP_NAME
      Length (in bytes) of the conductor buffer for control commands from the clients to the media driver conductor.
      See Also:
    • CONDUCTOR_BUFFER_LENGTH_DEFAULT

      public static final int CONDUCTOR_BUFFER_LENGTH_DEFAULT
      Default buffer length for conductor buffers between the client and the media driver conductor.
    • TO_CLIENTS_BUFFER_LENGTH_PROP_NAME

      public static final String TO_CLIENTS_BUFFER_LENGTH_PROP_NAME
      Length (in bytes) of the broadcast buffers from the media driver to the clients.
      See Also:
    • TO_CLIENTS_BUFFER_LENGTH_DEFAULT

      public static final int TO_CLIENTS_BUFFER_LENGTH_DEFAULT
      Default buffer length for broadcast buffers from the media driver and the clients.
    • COUNTERS_VALUES_BUFFER_LENGTH_PROP_NAME

      public static final String COUNTERS_VALUES_BUFFER_LENGTH_PROP_NAME
      Property name for length of the buffer for the counters.

      Each counter uses CountersReader.COUNTER_LENGTH bytes.

      See Also:
    • COUNTERS_VALUES_BUFFER_LENGTH_DEFAULT

      public static final int COUNTERS_VALUES_BUFFER_LENGTH_DEFAULT
      Default length of the buffer for the counters file.
      See Also:
    • COUNTERS_VALUES_BUFFER_LENGTH_MAX

      public static final int COUNTERS_VALUES_BUFFER_LENGTH_MAX
      Maximum length of the buffer for the counters file.
      See Also:
    • ERROR_BUFFER_LENGTH_PROP_NAME

      public static final String ERROR_BUFFER_LENGTH_PROP_NAME
      Property name for length of the memory mapped buffer for the distinct error log.
      See Also:
    • ERROR_BUFFER_LENGTH_DEFAULT

      public static final int ERROR_BUFFER_LENGTH_DEFAULT
      Default buffer length for the error buffer for the media driver.
      See Also:
    • LOSS_REPORT_BUFFER_LENGTH_PROP_NAME

      public static final String LOSS_REPORT_BUFFER_LENGTH_PROP_NAME
      Property name for length of the memory mapped buffer for the LossReport.
      See Also:
    • LOSS_REPORT_BUFFER_LENGTH_DEFAULT

      public static final int LOSS_REPORT_BUFFER_LENGTH_DEFAULT
      Default buffer length for the LossReport.
      See Also:
    • INITIAL_WINDOW_LENGTH_PROP_NAME

      public static final String INITIAL_WINDOW_LENGTH_PROP_NAME
      Property name for length of the initial window which must be sufficient for Bandwidth Delay Product (BDP).
      See Also:
    • INITIAL_WINDOW_LENGTH_DEFAULT

      public static final int INITIAL_WINDOW_LENGTH_DEFAULT
      Default initial window length for flow control sender to receiver purposes. This assumes a system free of pauses.

      Length of Initial Window:

      RTT (LAN) = 100 usec Throughput = 10 Gbps

      Buffer = Throughput * RTT Buffer = (10 * 1000 * 1000 * 1000 / 8) * 0.0001 = 125000 Round to 128 KB

      See Also:
    • STATUS_MESSAGE_TIMEOUT_PROP_NAME

      public static final String STATUS_MESSAGE_TIMEOUT_PROP_NAME
      Status message timeout in nanoseconds after which one will be sent when data flow has not triggered one.
      See Also:
    • STATUS_MESSAGE_TIMEOUT_DEFAULT_NS

      public static final long STATUS_MESSAGE_TIMEOUT_DEFAULT_NS
      Max timeout between Status messages (SM)s.
    • SEND_TO_STATUS_POLL_RATIO_PROP_NAME

      public static final String SEND_TO_STATUS_POLL_RATIO_PROP_NAME
      Property name for ratio of sending data to polling status messages in the Sender.
      See Also:
    • SEND_TO_STATUS_POLL_RATIO_DEFAULT

      public static final int SEND_TO_STATUS_POLL_RATIO_DEFAULT
      The ratio for sending data to polling status messages in the Sender. This may be reduced for smaller windows.
      See Also:
    • RESOURCE_FREE_LIMIT_PROP_NAME

      public static final String RESOURCE_FREE_LIMIT_PROP_NAME
      Property name for the limit of the number of driver managed resources that can be freed in a single duty cycle.
      See Also:
    • RESOURCE_FREE_LIMIT_DEFAULT

      public static final int RESOURCE_FREE_LIMIT_DEFAULT
      Default value for the limit of the number of driver managed resources that can be freed in a single duty cycle.
      See Also:
    • SOCKET_RCVBUF_LENGTH_PROP_NAME

      public static final String SOCKET_RCVBUF_LENGTH_PROP_NAME
      Property name for SO_RCVBUF setting on UDP sockets which must be sufficient for Bandwidth Delay Product (BDP).
      See Also:
    • SOCKET_RCVBUF_LENGTH_DEFAULT

      public static final int SOCKET_RCVBUF_LENGTH_DEFAULT
      Default SO_RCVBUF length.
      See Also:
    • SOCKET_SNDBUF_LENGTH_PROP_NAME

      public static final String SOCKET_SNDBUF_LENGTH_PROP_NAME
      Property name for SO_SNDBUF setting on UDP sockets which must be sufficient for Bandwidth Delay Product (BDP).
      See Also:
    • SOCKET_SNDBUF_LENGTH_DEFAULT

      public static final int SOCKET_SNDBUF_LENGTH_DEFAULT
      Default SO_SNDBUF length.
      See Also:
    • SOCKET_MULTICAST_TTL_PROP_NAME

      public static final String SOCKET_MULTICAST_TTL_PROP_NAME
      Property name for IP_MULTICAST_TTL setting on UDP sockets.
      See Also:
    • SOCKET_MULTICAST_TTL_DEFAULT

      public static final int SOCKET_MULTICAST_TTL_DEFAULT
      Multicast TTL value, 0 means use OS default.
      See Also:
    • PUBLICATION_LINGER_PROP_NAME

      public static final String PUBLICATION_LINGER_PROP_NAME
      Property name for linger timeout after draining on Publications so they can respond to NAKs.
      See Also:
    • PUBLICATION_LINGER_DEFAULT_NS

      public static final long PUBLICATION_LINGER_DEFAULT_NS
      Default time for Publications to linger after draining and before cleanup in nanoseconds.
    • CLIENT_LIVENESS_TIMEOUT_PROP_NAME

      public static final String CLIENT_LIVENESS_TIMEOUT_PROP_NAME
      Property name for Aeron client liveness timeout after which it is considered not alive.
      See Also:
    • CLIENT_LIVENESS_TIMEOUT_DEFAULT_NS

      public static final long CLIENT_LIVENESS_TIMEOUT_DEFAULT_NS
      Default timeout for client liveness timeout after which it is considered not alive.
    • IMAGE_LIVENESS_TIMEOUT_PROP_NAME

      public static final String IMAGE_LIVENESS_TIMEOUT_PROP_NAME
      Image liveness timeout for how long it stays active without heartbeats or lingers around after being drained.
      See Also:
    • IMAGE_LIVENESS_TIMEOUT_DEFAULT_NS

      public static final long IMAGE_LIVENESS_TIMEOUT_DEFAULT_NS
      Default timeout for Image liveness timeout.
    • PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME

      public static final String PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
      Property name for window limit on Publication side by which the publisher can get ahead of consumers.
      See Also:
    • IPC_PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME

      public static final String IPC_PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
      Property name for window limit for IPC publications.
      See Also:
    • PUBLICATION_UNBLOCK_TIMEOUT_PROP_NAME

      public static final String PUBLICATION_UNBLOCK_TIMEOUT_PROP_NAME
      Publication unblock timeout due to client crash or untimely commit.

      A publication can become blocked if the client crashes while publishing or if Publication.tryClaim(int, BufferClaim) is used without following up by calling BufferClaim.commit() or BufferClaim.abort().

      See Also:
    • PUBLICATION_UNBLOCK_TIMEOUT_DEFAULT_NS

      public static final long PUBLICATION_UNBLOCK_TIMEOUT_DEFAULT_NS
      Timeout for Publication unblock in nanoseconds.
    • PUBLICATION_CONNECTION_TIMEOUT_PROP_NAME

      public static final String PUBLICATION_CONNECTION_TIMEOUT_PROP_NAME
      Property name for Publication timeout due to lack of status messages which indicate a connection.
      See Also:
    • PUBLICATION_CONNECTION_TIMEOUT_DEFAULT_NS

      public static final long PUBLICATION_CONNECTION_TIMEOUT_DEFAULT_NS
      Timeout for Publication connection timeout in nanoseconds.
    • SPIES_SIMULATE_CONNECTION_PROP_NAME

      public static final String SPIES_SIMULATE_CONNECTION_PROP_NAME
      Property name for if spy subscriptions simulate a connection to a network publication.

      If true then this will override the min group size of the min and tagged flow control strategies.

      See Also:
    • IDLE_MAX_SPINS

      public static final long IDLE_MAX_SPINS
      Spin on no activity before backing off to yielding.
      See Also:
    • IDLE_MAX_YIELDS

      public static final long IDLE_MAX_YIELDS
      Yield the thread so others can run before backing off to parking.
      See Also:
    • IDLE_MIN_PARK_NS

      public static final long IDLE_MIN_PARK_NS
      Park for the minimum period of time which is typically 50-55 microseconds on 64-bit non-virtualised Linux. You will typically get 50-55 microseconds plus the number of nanoseconds requested if a core is available. On Windows expect to wait for at least 16ms or 1ms if the high-res timers are enabled.
      See Also:
    • IDLE_MAX_PARK_NS

      public static final long IDLE_MAX_PARK_NS
      Maximum back-off park time which doubles on each interval stepping up from the min park idle.
    • CONTROLLABLE_IDLE_STRATEGY

      public static final String CONTROLLABLE_IDLE_STRATEGY
      IdleStrategy to be used when mode can be controlled via a counter.
      See Also:
    • SENDER_IDLE_STRATEGY_PROP_NAME

      public static final String SENDER_IDLE_STRATEGY_PROP_NAME
      Property name for IdleStrategy to be employed by Sender for ThreadingMode.DEDICATED.
      See Also:
    • SENDER_IDLE_STRATEGY_DEFAULT

      public static final String SENDER_IDLE_STRATEGY_DEFAULT
      Default idle strategy for the sender thread.
      See Also:
    • RECEIVER_IDLE_STRATEGY_PROP_NAME

      public static final String RECEIVER_IDLE_STRATEGY_PROP_NAME
      Property name for IdleStrategy to be employed by Receiver for ThreadingMode.DEDICATED.
      See Also:
    • RECEIVER_IDLE_STRATEGY_DEFAULT

      public static final String RECEIVER_IDLE_STRATEGY_DEFAULT
      Default idle strategy for the receiver thread.
      See Also:
    • CONDUCTOR_IDLE_STRATEGY_PROP_NAME

      public static final String CONDUCTOR_IDLE_STRATEGY_PROP_NAME
      See Also:
    • CONDUCTOR_IDLE_STRATEGY_DEFAULT

      public static final String CONDUCTOR_IDLE_STRATEGY_DEFAULT
      Default idle strategy for the conductor thread.
      See Also:
    • SHARED_NETWORK_IDLE_STRATEGY_PROP_NAME

      public static final String SHARED_NETWORK_IDLE_STRATEGY_PROP_NAME
      Property name for IdleStrategy to be employed by Sender and Receiver for ThreadingMode.SHARED_NETWORK.
      See Also:
    • SHARED_NETWORK_IDLE_STRATEGY_DEFAULT

      public static final String SHARED_NETWORK_IDLE_STRATEGY_DEFAULT
      Default idle strategy for the shared network thread.
      See Also:
    • SHARED_IDLE_STRATEGY_PROP_NAME

      public static final String SHARED_IDLE_STRATEGY_PROP_NAME
      Property name for IdleStrategy to be employed by Sender, Receiver, and DriverConductor for ThreadingMode.SHARED.
      See Also:
    • SHARED_IDLE_STRATEGY_DEFAULT

      public static final String SHARED_IDLE_STRATEGY_DEFAULT
      Default idle strategy for the shared thread.
      See Also:
    • UNICAST_FLOW_CONTROL_STRATEGY_PROP_NAME

      public static final String UNICAST_FLOW_CONTROL_STRATEGY_PROP_NAME
      Property name for FlowControl to be employed for unicast channels.
      See Also:
    • UNICAST_FLOW_CONTROL_STRATEGY_DEFAULT

      public static final String UNICAST_FLOW_CONTROL_STRATEGY_DEFAULT
      See Also:
    • UNICAST_FLOW_CONTROL_STRATEGY

      public static final String UNICAST_FLOW_CONTROL_STRATEGY
      FlowControl to be employed for unicast channels.
    • MULTICAST_FLOW_CONTROL_STRATEGY_PROP_NAME

      public static final String MULTICAST_FLOW_CONTROL_STRATEGY_PROP_NAME
      Property name for FlowControl to be employed for multicast channels.
      See Also:
    • MULTICAST_FLOW_CONTROL_STRATEGY_DEFAULT

      public static final String MULTICAST_FLOW_CONTROL_STRATEGY_DEFAULT
      See Also:
    • MULTICAST_FLOW_CONTROL_STRATEGY

      public static final String MULTICAST_FLOW_CONTROL_STRATEGY
      FlowControl to be employed for multicast channels.
    • UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME

      public static final String UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
      Property name for FlowControlSupplier to be employed for unicast channels.
      See Also:
    • MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME

      public static final String MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
      Property name for FlowControlSupplier to be employed for unicast channels.
      See Also:
    • MAX_UDP_PAYLOAD_LENGTH

      public static final int MAX_UDP_PAYLOAD_LENGTH
      Maximum UDP datagram payload size for IPv4. Jumbo datagrams from IPv6 are not supported.

      Max length is 65,507 bytes as 65,535 minus 8 byte UDP header then minus 20 byte IP header. Then round down to the nearest multiple of FrameDescriptor.FRAME_ALIGNMENT giving 65,504.

      See Also:
    • MTU_LENGTH_PROP_NAME

      public static final String MTU_LENGTH_PROP_NAME
      Length of the maximum transmission unit of the media driver's protocol. If this is greater than the network MTU for UDP then the packet will be fragmented and can amplify the impact of loss.
      See Also:
    • MTU_LENGTH_DEFAULT

      public static final int MTU_LENGTH_DEFAULT
      The default is conservative to avoid fragmentation on IPv4 or IPv6 over Ethernet with PPPoE header, or for clouds such as Google, Azure, and AWS.

      On networks that suffer little congestion then a larger value can be used to reduce syscall costs.

      See Also:
    • IPC_MTU_LENGTH_PROP_NAME

      public static final String IPC_MTU_LENGTH_PROP_NAME
      Length of the maximum transmission unit of the media driver's protocol for IPC. This can be larger than the UDP version but if recorded replay needs to be considered.
      See Also:
    • IPC_MTU_LENGTH_DEFAULT

      public static final int IPC_MTU_LENGTH_DEFAULT
      See Also:
    • THREADING_MODE_PROP_NAME

      public static final String THREADING_MODE_PROP_NAME
      ThreadingMode to be used by the Aeron MediaDriver.
      See Also:
    • TIMER_INTERVAL_PROP_NAME

      public static final String TIMER_INTERVAL_PROP_NAME
      Interval between checks for timers and timeouts.
      See Also:
    • DEFAULT_TIMER_INTERVAL_NS

      public static final long DEFAULT_TIMER_INTERVAL_NS
      Default interval between checks for timers and timeouts.
    • COUNTER_FREE_TO_REUSE_TIMEOUT_PROP_NAME

      public static final String COUNTER_FREE_TO_REUSE_TIMEOUT_PROP_NAME
      Timeout between a counter being freed and being available to be reused.
      See Also:
    • DEFAULT_COUNTER_FREE_TO_REUSE_TIMEOUT_NS

      public static final long DEFAULT_COUNTER_FREE_TO_REUSE_TIMEOUT_NS
      Default timeout between a counter being freed and being available to be reused.
    • SEND_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME

      public static final String SEND_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME
      Property name for SendChannelEndpointSupplier.
      See Also:
    • RECEIVE_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME

      public static final String RECEIVE_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME
      See Also:
    • SM_APPLICATION_SPECIFIC_FEEDBACK_PROP_NAME

      @Deprecated public static final String SM_APPLICATION_SPECIFIC_FEEDBACK_PROP_NAME
      Deprecated.
      Property name for Application Specific Feedback added to Status Messages by the driver for flow control.

      Replaced by RECEIVER_GROUP_TAG_PROP_NAME.

      See Also:
    • CONGESTION_CONTROL_STRATEGY_SUPPLIER_PROP_NAME

      public static final String CONGESTION_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
      Property name for CongestionControlSupplier to be employed for receivers.
      See Also:
    • PUBLICATION_RESERVED_SESSION_ID_LOW_PROP_NAME

      public static final String PUBLICATION_RESERVED_SESSION_ID_LOW_PROP_NAME
      Property name for low end of the publication reserved session-id range which will not be automatically assigned.
      See Also:
    • PUBLICATION_RESERVED_SESSION_ID_LOW_DEFAULT

      public static final int PUBLICATION_RESERVED_SESSION_ID_LOW_DEFAULT
      Low-end of the publication reserved session-id range which will not be automatically assigned.
      See Also:
    • PUBLICATION_RESERVED_SESSION_ID_HIGH_PROP_NAME

      public static final String PUBLICATION_RESERVED_SESSION_ID_HIGH_PROP_NAME
      High-end of the publication reserved session-id range which will not be automatically assigned.
      See Also:
    • PUBLICATION_RESERVED_SESSION_ID_HIGH_DEFAULT

      public static final int PUBLICATION_RESERVED_SESSION_ID_HIGH_DEFAULT
      High-end of the publication reserved session-id range which will not be automatically assigned.
      See Also:
    • COMMAND_DRAIN_LIMIT

      public static final int COMMAND_DRAIN_LIMIT
      Limit for the number of commands drained in one operation.
      See Also:
    • CMD_QUEUE_CAPACITY

      public static final int CMD_QUEUE_CAPACITY
      Capacity for the command queues used between driver agents.
      See Also:
    • PENDING_SETUPS_TIMEOUT_NS

      public static final long PENDING_SETUPS_TIMEOUT_NS
      Timeout on cleaning up pending SETUP message state on subscriber.
    • PUBLICATION_SETUP_TIMEOUT_NS

      public static final long PUBLICATION_SETUP_TIMEOUT_NS
      Timeout between SETUP messages for publications during initial setup phase.
    • PUBLICATION_HEARTBEAT_TIMEOUT_NS

      public static final long PUBLICATION_HEARTBEAT_TIMEOUT_NS
      Timeout between heartbeats for publications.
    • NAK_MULTICAST_GROUP_SIZE_PROP_NAME

      public static final String NAK_MULTICAST_GROUP_SIZE_PROP_NAME
      Expected size of multicast receiver groups property name.
      See Also:
    • NAK_MULTICAST_GROUP_SIZE_DEFAULT

      public static final int NAK_MULTICAST_GROUP_SIZE_DEFAULT
      Default multicast receiver group size estimate for NAK delay randomisation.
      See Also:
    • NAK_MULTICAST_MAX_BACKOFF_PROP_NAME

      public static final String NAK_MULTICAST_MAX_BACKOFF_PROP_NAME
      Max backoff time for multicast NAK delay randomisation in nanoseconds.
      See Also:
    • NAK_MAX_BACKOFF_DEFAULT_NS

      public static final long NAK_MAX_BACKOFF_DEFAULT_NS
      Default max backoff for NAK delay randomisation in nanoseconds.
    • NAK_UNICAST_DELAY_PROP_NAME

      public static final String NAK_UNICAST_DELAY_PROP_NAME
      Unicast NAK delay in nanoseconds property name.
      See Also:
    • NAK_UNICAST_DELAY_DEFAULT_NS

      public static final long NAK_UNICAST_DELAY_DEFAULT_NS
      Default Unicast NAK delay in nanoseconds.
    • NAK_UNICAST_RETRY_DELAY_RATIO_PROP_NAME

      public static final String NAK_UNICAST_RETRY_DELAY_RATIO_PROP_NAME
      Unicast NAK retry delay ratio property name.
      See Also:
    • NAK_UNICAST_RETRY_DELAY_RATIO_DEFAULT

      public static final long NAK_UNICAST_RETRY_DELAY_RATIO_DEFAULT
      Default Unicast NAK retry delay ratio.
      See Also:
    • RETRANSMIT_UNICAST_DELAY_PROP_NAME

      public static final String RETRANSMIT_UNICAST_DELAY_PROP_NAME
      Property for setting how long to delay before sending a retransmit after receiving a NAK.
      See Also:
    • RETRANSMIT_UNICAST_DELAY_DEFAULT_NS

      public static final long RETRANSMIT_UNICAST_DELAY_DEFAULT_NS
      Default delay before retransmission of data for unicast in nanoseconds.
    • RETRANSMIT_UNICAST_LINGER_PROP_NAME

      public static final String RETRANSMIT_UNICAST_LINGER_PROP_NAME
      Property for setting how long to linger after delay on a NAK before responding to another NAK.
      See Also:
    • RETRANSMIT_UNICAST_LINGER_DEFAULT_NS

      public static final long RETRANSMIT_UNICAST_LINGER_DEFAULT_NS
      Default delay for linger for unicast in nanoseconds.
    • UNTETHERED_WINDOW_LIMIT_TIMEOUT_PROP_NAME

      public static final String UNTETHERED_WINDOW_LIMIT_TIMEOUT_PROP_NAME
      Property name of the timeout for when an untethered subscription that is outside the window limit will participate in local flow control.
      See Also:
    • UNTETHERED_WINDOW_LIMIT_TIMEOUT_DEFAULT_NS

      public static final long UNTETHERED_WINDOW_LIMIT_TIMEOUT_DEFAULT_NS
      Default timeout for when an untethered subscription that is outside the window limit will participate in local flow control.
    • UNTETHERED_RESTING_TIMEOUT_PROP_NAME

      public static final String UNTETHERED_RESTING_TIMEOUT_PROP_NAME
      Property name of the timeout for when an untethered subscription is resting after not being able to keep up before it is allowed to rejoin a stream.
      See Also:
    • UNTETHERED_RESTING_TIMEOUT_DEFAULT_NS

      public static final long UNTETHERED_RESTING_TIMEOUT_DEFAULT_NS
      Default timeout for when an untethered subscription is resting after not being able to keep up before it is allowed to rejoin a stream.
    • MAX_RESEND_PROP_NAME

      public static final String MAX_RESEND_PROP_NAME
      Property name of the max number of active retransmissions tracked for udp streams with group semantics.
      See Also:
    • MAX_RESEND_DEFAULT

      public static final int MAX_RESEND_DEFAULT
      Default max number of active retransmissions per connected stream udp stream with group semantics.
      See Also:
    • MAX_RESEND_MAX

      public static final int MAX_RESEND_MAX
      Maximum value for the active retransmissions per connected stream udp stream with group semantics.
      See Also:
    • TERMINATION_VALIDATOR_PROP_NAME

      public static final String TERMINATION_VALIDATOR_PROP_NAME
      Property name for the class used to validate if a driver should terminate based on token.
      See Also:
    • REJOIN_STREAM_PROP_NAME

      public static final String REJOIN_STREAM_PROP_NAME
      Property name for default boolean value for if a stream can be rejoined. True to allow stream rejoin.
      See Also:
    • RECEIVER_GROUP_TAG_PROP_NAME

      public static final String RECEIVER_GROUP_TAG_PROP_NAME
      Property name for default group tag (gtag) to send in all Status Messages.
      See Also:
    • FLOW_CONTROL_GROUP_TAG_PROP_NAME

      public static final String FLOW_CONTROL_GROUP_TAG_PROP_NAME
      Property name for default group tag (gtag) used by the tagged flow control strategy to group receivers.
      See Also:
    • FLOW_CONTROL_GROUP_MIN_SIZE_PROP_NAME

      public static final String FLOW_CONTROL_GROUP_MIN_SIZE_PROP_NAME
      Property name for default minimum group size used by flow control strategies to determine connectivity.
      See Also:
    • FLOW_CONTROL_RECEIVER_TIMEOUT_DEFAULT_NS

      public static final long FLOW_CONTROL_RECEIVER_TIMEOUT_DEFAULT_NS
      Default value for the receiver timeout used to determine if the receiver should still be monitored for flow control purposes.
    • FLOW_CONTROL_RECEIVER_TIMEOUT_PROP_NAME

      public static final String FLOW_CONTROL_RECEIVER_TIMEOUT_PROP_NAME
      Property name for flow control timeout after which with no status messages the receiver is considered gone.
      See Also:
    • RESOLVER_NAME_PROP_NAME

      public static final String RESOLVER_NAME_PROP_NAME
      Property name for resolver name of the Media Driver used in name resolution.
      See Also:
    • RESOLVER_INTERFACE_PROP_NAME

      public static final String RESOLVER_INTERFACE_PROP_NAME
      Property name for resolver interface to which network connections are made.
      See Also:
    • RESOLVER_BOOTSTRAP_NEIGHBOR_PROP_NAME

      public static final String RESOLVER_BOOTSTRAP_NEIGHBOR_PROP_NAME
      Property name for resolver bootstrap neighbors for which it can bootstrap naming, format is comma separated list of hostname:port pairs.
      See Also:
    • RE_RESOLUTION_CHECK_INTERVAL_PROP_NAME

      public static final String RE_RESOLUTION_CHECK_INTERVAL_PROP_NAME
      Property name for re-resolution check interval for resolving names to IP address.
      See Also:
    • RE_RESOLUTION_CHECK_INTERVAL_DEFAULT_NS

      public static final long RE_RESOLUTION_CHECK_INTERVAL_DEFAULT_NS
      Default value for the re-resolution check interval.
    • CONDUCTOR_CYCLE_THRESHOLD_PROP_NAME

      public static final String CONDUCTOR_CYCLE_THRESHOLD_PROP_NAME
      Property name for threshold value for the conductor work cycle threshold to track for being exceeded.
      See Also:
    • CONDUCTOR_CYCLE_THRESHOLD_DEFAULT_NS

      public static final long CONDUCTOR_CYCLE_THRESHOLD_DEFAULT_NS
      Default threshold value for the conductor work cycle threshold to track for being exceeded.
    • SENDER_CYCLE_THRESHOLD_PROP_NAME

      public static final String SENDER_CYCLE_THRESHOLD_PROP_NAME
      Property name for threshold value for the sender work cycle threshold to track for being exceeded.
      See Also:
    • SENDER_CYCLE_THRESHOLD_DEFAULT_NS

      public static final long SENDER_CYCLE_THRESHOLD_DEFAULT_NS
      Default threshold value for the sender work cycle threshold to track for being exceeded.
    • RECEIVER_CYCLE_THRESHOLD_PROP_NAME

      public static final String RECEIVER_CYCLE_THRESHOLD_PROP_NAME
      Property name for threshold value for the receiver work cycle threshold to track for being exceeded.
      See Also:
    • RECEIVER_CYCLE_THRESHOLD_DEFAULT_NS

      public static final long RECEIVER_CYCLE_THRESHOLD_DEFAULT_NS
      Default threshold value for the receiver work cycle threshold to track for being exceeded.
    • NAME_RESOLVER_THRESHOLD_PROP_NAME

      public static final String NAME_RESOLVER_THRESHOLD_PROP_NAME
      Property name for threshold value for the name resolution threshold to track for being exceeded.
      See Also:
    • NAME_RESOLVER_THRESHOLD_DEFAULT_NS

      public static final long NAME_RESOLVER_THRESHOLD_DEFAULT_NS
      Default threshold value for the name resolution threshold to track for being exceeded.
    • SENDER_WILDCARD_PORT_RANGE_PROP_NAME

      public static final String SENDER_WILDCARD_PORT_RANGE_PROP_NAME
      Property name for wildcard port range for the Sender.
      See Also:
    • RECEIVER_WILDCARD_PORT_RANGE_PROP_NAME

      public static final String RECEIVER_WILDCARD_PORT_RANGE_PROP_NAME
      Property name for wildcard port range for the Receiver.
      See Also:
    • ASYNC_TASK_EXECUTOR_THREADS_PROP_NAME

      public static final String ASYNC_TASK_EXECUTOR_THREADS_PROP_NAME
      Property name to configure the number of async executor threads. Defaults to 1. Negative value or zero means no asynchronous threads should be created, i.e. execution will be done on the conductor thread.
      Since:
      1.44.0
      See Also:
    • STREAM_SESSION_LIMIT_PROP_NAME

      public static final String STREAM_SESSION_LIMIT_PROP_NAME
      Property name to set a limit on the number sessions allowed per stream on a subscription.
      See Also:
    • STREAM_SESSION_LIMIT_DEFAULT

      public static final int STREAM_SESSION_LIMIT_DEFAULT
      Default number of sessions allowed per stream on a subscription. Default is to be effectively unlimited.
      See Also:
    • CALLER_RUNS_TASK_EXECUTOR

      public static final Executor CALLER_RUNS_TASK_EXECUTOR
      Executor that run tasks on the caller thread.
  • Constructor Details

    • Configuration

      public Configuration()
  • Method Details

    • useWindowsHighResTimer

      public static boolean useWindowsHighResTimer()
      Should the high-resolution timer be used when running on Windows.
      Returns:
      true if the high-resolution timer be used when running on Windows.
      See Also:
    • warnIfDirExists

      public static boolean warnIfDirExists()
      Should a warning be printed if the aeron directory exist when starting.
      Returns:
      true if a warning be printed if the aeron directory exist when starting.
      See Also:
    • dirDeleteOnStart

      public static boolean dirDeleteOnStart()
      Should driver attempt to an immediate forced delete of CommonContext.AERON_DIR_PROP_NAME on start if it exists.
      Returns:
      true if the aeron directory be deleted on start without checking if active.
      See Also:
    • dirDeleteOnShutdown

      public static boolean dirDeleteOnShutdown()
      Should driver attempt to delete CommonContext.AERON_DIR_PROP_NAME on shutdown.
      Returns:
      true if driver should attempt to delete CommonContext.AERON_DIR_PROP_NAME on shutdown.
      See Also:
    • termBufferSparseFile

      public static boolean termBufferSparseFile()
      Should term buffers be created as sparse files. This can save space at the expense of latency when required.
      Returns:
      true if term buffers should be created as sparse files.
      See Also:
    • tetherSubscriptions

      public static boolean tetherSubscriptions()
      Default for if subscriptions should be tethered.
      Returns:
      true if the default subscriptions should be tethered.
      See Also:
    • reliableStream

      public static boolean reliableStream()
      Default boolean value for if a stream is reliable. True to NAK, false to gap fill.
      Returns:
      true if NAK is default or false to gap fill.
      See Also:
    • performStorageChecks

      public static boolean performStorageChecks()
      Should storage checks should be performed before allocating files.
      Returns:
      true of storage checks should be performed before allocating files.
      See Also:
    • spiesSimulateConnection

      public static boolean spiesSimulateConnection()
      Should spy subscriptions simulate a connection to a network publication.

      If true then this will override the min group size of the min and tagged flow control strategies.

      Returns:
      true if spy subscriptions should simulate a connection to a network publication.
      See Also:
    • receiverGroupConsideration

      public static CommonContext.InferableBoolean receiverGroupConsideration()
      Should subscriptions should be considered a group member or individual connection, e.g. multicast vs unicast.
      Returns:
      FORCE_TRUE if subscriptions should be considered a group member or false if individual.
      See Also:
    • conductorBufferLength

      public static int conductorBufferLength()
      Length (in bytes) of the conductor buffer for control commands from the clients to the media driver conductor.
      Returns:
      length (in bytes) of the conductor buffer for control commands from the clients to the media driver.
      See Also:
    • toClientsBufferLength

      public static int toClientsBufferLength()
      Length (in bytes) of the broadcast buffers from the media driver to the clients.
      Returns:
      length (in bytes) of the broadcast buffers from the media driver to the clients.
      See Also:
    • counterValuesBufferLength

      public static int counterValuesBufferLength()
      Length of the buffer for the counters.

      Each counter uses CountersReader.COUNTER_LENGTH bytes.

      Returns:
      Length of the buffer for the counters.
      See Also:
    • errorBufferLength

      public static int errorBufferLength()
      Length of the memory mapped buffer for the distinct error log.
      Returns:
      length of the memory mapped buffer for the distinct error log.
    • nakMulticastGroupSize

      public static int nakMulticastGroupSize()
      Expected size of typical multicast receiver groups.
      Returns:
      expected size of typical multicast receiver groups.
      See Also:
    • nakMulticastMaxBackoffNs

      public static long nakMulticastMaxBackoffNs()
      Max backoff time for multicast NAK delay randomisation in nanoseconds.
      Returns:
      max backoff time for multicast NAK delay randomisation in nanoseconds.
      See Also:
    • nakUnicastDelayNs

      public static long nakUnicastDelayNs()
      Unicast NAK delay in nanoseconds.
      Returns:
      unicast NAK delay in nanoseconds.
      See Also:
    • nakUnicastRetryDelayRatio

      public static long nakUnicastRetryDelayRatio()
      Unicast NAK retry delay ratio.
      Returns:
      unicast NAK delay in nanoseconds.
      See Also:
    • timerIntervalNs

      public static long timerIntervalNs()
      Interval between checks for timers and timeouts.
      Returns:
      interval between checks for timers and timeouts.
      See Also:
    • lowStorageWarningThreshold

      public static long lowStorageWarningThreshold()
      Low file storage warning threshold in bytes for when performing storage checks.
      Returns:
      Low file storage warning threshold for when performing storage checks.
      See Also:
    • publicationTermWindowLength

      public static int publicationTermWindowLength()
      The window limit on UDP Publication side by which the publisher can get ahead of consumers.
      Returns:
      window limit on UDP Publication side by which the publisher can get ahead of consumers.
      See Also:
    • ipcPublicationTermWindowLength

      public static int ipcPublicationTermWindowLength()
      The window limit on IPC Publication side by which the publisher can get ahead of consumers.
      Returns:
      window limit on IPC Publication side by which the publisher can get ahead of consumers.
      See Also:
    • untetheredWindowLimitTimeoutNs

      public static long untetheredWindowLimitTimeoutNs()
      The timeout for when an untethered subscription that is outside the window limit will participate in local flow control.
      Returns:
      the timeout for when an untethered subscription that is outside the window limit will be included.
      See Also:
    • untetheredRestingTimeoutNs

      public static long untetheredRestingTimeoutNs()
      The timeout for when an untethered subscription is resting after not being able to keep up before it is allowed to rejoin a stream.
      Returns:
      The timeout for when an untethered subscription is resting before rejoining a stream.
      See Also:
    • maxResend

      public static int maxResend()
      Max number of active retransmissions tracked for udp streams with group semantics.
      Returns:
      max retransmits
      See Also:
    • rejoinStream

      public static boolean rejoinStream()
      Default boolean value for if a stream can be rejoined. True to allow stream rejoin, false to not.
      Returns:
      boolean value for if a stream can be rejoined. True to allow stream rejoin, false to not.
      See Also:
    • groupTag

      public static Long groupTag()
      Default group tag (gtag) to send in all Status Messages. If not provided then no gtag is sent.
      Returns:
      Default group tag (gtag) to send in all Status Messages.
      See Also:
    • flowControlGroupTag

      public static long flowControlGroupTag()
      Default group tag (gtag) used by the tagged flow control strategy to group receivers.
      Returns:
      group tag (gtag) used by the tagged flow control strategy to group receivers.
      See Also:
    • flowControlGroupMinSize

      public static int flowControlGroupMinSize()
      Default minimum group size used by flow control strategies to determine connectivity.
      Returns:
      default minimum group size used by flow control strategies to determine connectivity.
      See Also:
    • flowControlReceiverTimeoutNs

      public static long flowControlReceiverTimeoutNs()
      Flow control timeout after which with no status messages the receiver is considered gone.
      Returns:
      flow control timeout after which with no status messages the receiver is considered gone.
      See Also:
    • resolverName

      public static String resolverName()
      Resolver name of the Media Driver used in name resolution.
      Returns:
      resolver name of the Media Driver used in name resolution.
      See Also:
    • resolverInterface

      public static String resolverInterface()
      Property name for resolver interface to which network connections are made, format is hostname:port.
      Returns:
      resolver interface to which network connections are made, format is hostname:port.
      See Also:
    • resolverBootstrapNeighbor

      public static String resolverBootstrapNeighbor()
      Resolver bootstrap neighbor for which it can bootstrap naming, format is hostname:port.
      Returns:
      resolver bootstrap neighbor for which it can bootstrap naming, format is hostname:port.
      See Also:
    • reResolutionCheckIntervalNs

      public static long reResolutionCheckIntervalNs()
      Re-resolution check interval for resolving names to IP address when they may have changed.
      Returns:
      re-resolution check interval for resolving names to IP address when they may have changed.
      See Also:
    • producerWindowLength

      public static int producerWindowLength(int termBufferLength, int defaultTermWindowLength)
      How far ahead a producer can get from a consumer position.
      Parameters:
      termBufferLength - for when default is not set and considering an appropriate minimum.
      defaultTermWindowLength - to take priority.
      Returns:
      the length to be used for the producer window.
    • receiverWindowLength

      public static int receiverWindowLength(int termBufferLength, int initialWindowLength)
      Length to be used for the receiver window taking into account initial window length and term buffer length.
      Parameters:
      termBufferLength - for the publication image.
      initialWindowLength - set for the channel.
      Returns:
      the length to be used for the receiver window.
    • termBufferLength

      public static int termBufferLength()
      Length (in bytes) of the log buffers for UDP publication terms.
      Returns:
      length (in bytes) of the log buffers for UDP publication terms.
      See Also:
    • ipcTermBufferLength

      public static int ipcTermBufferLength()
      Length (in bytes) of the log buffers for IPC publication terms.
      Returns:
      length (in bytes) of the log buffers for IPC publication terms.
      See Also:
    • initialWindowLength

      public static int initialWindowLength()
      Length of the initial window which must be sufficient for Bandwidth Delay Product (BDP).
      Returns:
      length of the initial window which must be sufficient for Bandwidth Delay Product (BDP).
      See Also:
    • socketSndbufLength

      public static int socketSndbufLength()
      SO_SNDBUF setting on UDP sockets which must be sufficient for Bandwidth Delay Product (BDP).
      Returns:
      SO_SNDBUF setting on UDP sockets which must be sufficient for Bandwidth Delay Product (BDP).
      See Also:
    • socketRcvbufLength

      public static int socketRcvbufLength()
      SO_RCVBUF setting on UDP sockets which must be sufficient for Bandwidth Delay Product (BDP).
      Returns:
      SO_RCVBUF setting on UDP sockets which must be sufficient for Bandwidth Delay Product (BDP).
      See Also:
    • mtuLength

      public static int mtuLength()
      Length of the maximum transmission unit of the media driver's protocol. If this is greater than the network MTU for UDP then the packet will be fragmented and can amplify the impact of loss.
      Returns:
      length of the maximum transmission unit of the media driver's protocol.
      See Also:
    • ipcMtuLength

      public static int ipcMtuLength()
      Length of the maximum transmission unit of the media driver's protocol for IPC. This can be larger than the UDP version but if recorded replay needs to be considered.
      Returns:
      length of the maximum transmission unit of the media driver's protocol for IPC.
      See Also:
    • socketMulticastTtl

      public static int socketMulticastTtl()
      IP_MULTICAST_TTL setting on UDP sockets.
      Returns:
      IP_MULTICAST_TTL setting on UDP sockets.
      See Also:
    • filePageSize

      public static int filePageSize()
      Page size in bytes to align all files to. The file system must support the requested size.
      Returns:
      page size in bytes to align all files to.
      See Also:
    • publicationReservedSessionIdLow

      public static int publicationReservedSessionIdLow()
      Low-end of the publication reserved session-id range which will not be automatically assigned.
      Returns:
      low-end of the publication reserved session-id range which will not be automatically assigned.
      See Also:
    • publicationReservedSessionIdHigh

      public static int publicationReservedSessionIdHigh()
      High-end of the publication reserved session-id range which will not be automatically assigned.
      Returns:
      high-end of the publication reserved session-id range which will not be automatically assigned.
      See Also:
    • statusMessageTimeoutNs

      public static long statusMessageTimeoutNs()
      Status message timeout in nanoseconds after which one will be sent when data flow has not triggered one.
      Returns:
      status message timeout in nanoseconds after which one will be sent.
      See Also:
    • sendToStatusMessagePollRatio

      public static int sendToStatusMessagePollRatio()
      Ratio of sending data to polling status messages in the Sender.
      Returns:
      ratio of sending data to polling status messages in the Sender.
      See Also:
    • resourceFreeLimit

      public static int resourceFreeLimit()
      Limit the number of driver managed resources that can be freed in the same duty cycle.
      Returns:
      limit of the number of resources.
      See Also:
    • counterFreeToReuseTimeoutNs

      public static long counterFreeToReuseTimeoutNs()
      Timeout between a counter being freed and being available to be reused.
      Returns:
      timeout between a counter being freed and being available to be reused.
      See Also:
    • clientLivenessTimeoutNs

      public static long clientLivenessTimeoutNs()
      Aeron client liveness timeout after which it is considered not alive.
      Returns:
      Aeron client liveness timeout after which it is considered not alive.
      See Also:
    • imageLivenessTimeoutNs

      public static long imageLivenessTimeoutNs()
      Image liveness timeout for how long it stays active without heartbeats or lingers around after being drained.
      Returns:
      Image liveness timeout for how long it stays active without heartbeats or lingers around after being drained.
      See Also:
    • publicationUnblockTimeoutNs

      public static long publicationUnblockTimeoutNs()
      Publication unblock timeout due to client crash or untimely commit.

      A publication can become blocked if the client crashes while publishing or if Publication.tryClaim(int, BufferClaim) is used without following up by calling BufferClaim.commit() or BufferClaim.abort().

      Returns:
      Publication unblock timeout due to client crash or untimely commit.
      See Also:
    • publicationConnectionTimeoutNs

      public static long publicationConnectionTimeoutNs()
      Publication timeout due to lack of status messages which indicate a connection.
      Returns:
      Publication timeout due to lack of status messages which indicate a connection.
      See Also:
    • publicationLingerTimeoutNs

      public static long publicationLingerTimeoutNs()
      Linger timeout after draining on Publications so they can respond to NAKs.
      Returns:
      linger timeout after draining on Publications so they can respond to NAKs.
      See Also:
    • retransmitUnicastDelayNs

      public static long retransmitUnicastDelayNs()
      Setting how long to delay before sending a retransmit after receiving a NAK.
      Returns:
      setting how long to delay before sending a retransmit after receiving a NAK.
      See Also:
    • retransmitUnicastLingerNs

      public static long retransmitUnicastLingerNs()
      Setting how long to linger after delay on a NAK before responding to another NAK.
      Returns:
      setting how long to linger after delay on a NAK before responding to another NAK.
      See Also:
    • lossReportBufferLength

      public static int lossReportBufferLength()
      Length of the memory mapped buffer for the LossReport.
      Returns:
      length of the memory mapped buffer for the LossReport.
      See Also:
    • threadingMode

      public static ThreadingMode threadingMode()
      ThreadingMode to be used by the Aeron MediaDriver. This allows for CPU resource to be traded against throughput and latency.
      Returns:
      ThreadingMode to be used by the Aeron MediaDriver.
      See Also:
    • conductorCycleThresholdNs

      public static long conductorCycleThresholdNs()
      Get threshold value for the conductor work cycle threshold to track for being exceeded.
      Returns:
      threshold value in nanoseconds.
    • senderCycleThresholdNs

      public static long senderCycleThresholdNs()
      Get threshold value for the sender work cycle threshold to track for being exceeded.
      Returns:
      threshold value in nanoseconds.
    • receiverCycleThresholdNs

      public static long receiverCycleThresholdNs()
      Get threshold value for the receiver work cycle threshold to track for being exceeded.
      Returns:
      threshold value in nanoseconds.
    • nameResolverThresholdNs

      public static long nameResolverThresholdNs()
      Get threshold value for the name resolution time threshold to track for being exceeded.
      Returns:
      threshold value in nanoseconds.
    • senderWildcardPortRange

      public static String senderWildcardPortRange()
      Get wildcard port range in use for the Sender.
      Returns:
      port range as string with the format "low high"
    • receiverWildcardPortRange

      public static String receiverWildcardPortRange()
      Get wildcard port range in use for the Receiver.
      Returns:
      port range as string with the format "low high"
    • asyncTaskExecutorThreads

      public static int asyncTaskExecutorThreads()
      Number of async executor threads.
      Returns:
      number of threads, defaults to one.
      Since:
      1.44.0
      See Also:
    • agentIdleStrategy

      public static IdleStrategy agentIdleStrategy(String strategyName, StatusIndicator controllableStatus)
      Get the IdleStrategy that should be applied to Agents.
      Parameters:
      strategyName - of the class to be created.
      controllableStatus - status indicator for what the strategy should do.
      Returns:
      the newly created IdleStrategy.
    • senderIdleStrategy

      public static IdleStrategy senderIdleStrategy(StatusIndicator controllableStatus)
      Parameters:
      controllableStatus - to allow control of ControllableIdleStrategy, which can be null if not used.
      Returns:
      IdleStrategy to be employed by Sender for ThreadingMode.DEDICATED.
      See Also:
    • receiverIdleStrategy

      public static IdleStrategy receiverIdleStrategy(StatusIndicator controllableStatus)
      Parameters:
      controllableStatus - to allow control of ControllableIdleStrategy, which can be null if not used.
      Returns:
      IdleStrategy to be employed by Receiver for ThreadingMode.DEDICATED.
      See Also:
    • conductorIdleStrategy

      public static IdleStrategy conductorIdleStrategy(StatusIndicator controllableStatus)
      Parameters:
      controllableStatus - to allow control of ControllableIdleStrategy, which can be null if not used.
      Returns:
      IdleStrategy to be employed by DriverConductor for ThreadingMode.DEDICATED and ThreadingMode.SHARED_NETWORK..
      See Also:
    • sharedNetworkIdleStrategy

      public static IdleStrategy sharedNetworkIdleStrategy(StatusIndicator controllableStatus)
      Parameters:
      controllableStatus - to allow control of ControllableIdleStrategy, which can be null if not used.
      Returns:
      IdleStrategy to be employed by Sender and Receiver for ThreadingMode.SHARED_NETWORK.
      See Also:
    • sharedIdleStrategy

      public static IdleStrategy sharedIdleStrategy(StatusIndicator controllableStatus)
      Parameters:
      controllableStatus - to allow control of ControllableIdleStrategy, which can be null if not used.
      Returns:
      IdleStrategy to be employed by Sender, Receiver, and DriverConductor for ThreadingMode.SHARED.
      See Also:
    • applicationSpecificFeedback

      @Deprecated public static byte[] applicationSpecificFeedback()
      Deprecated.
      Returns:
      Application Specific Feedback added to Status Messages by the driver for flow control.
      See Also:
    • sendChannelEndpointSupplier

      public static SendChannelEndpointSupplier sendChannelEndpointSupplier()
      Get the supplier of SendChannelEndpoints which can be used for debugging, monitoring, or modifying the behaviour when sending to the channel.
      Returns:
      the SendChannelEndpointSupplier.
    • receiveChannelEndpointSupplier

      public static ReceiveChannelEndpointSupplier receiveChannelEndpointSupplier()
      Get the supplier of ReceiveChannelEndpoints which can be used for debugging, monitoring, or modifying the behaviour when receiving from the channel.
      Returns:
      the SendChannelEndpointSupplier.
    • unicastFlowControlSupplier

      public static FlowControlSupplier unicastFlowControlSupplier()
      Get the supplier of FlowControls which can be used for changing behavior of flow control for unicast publications.
      Returns:
      the FlowControlSupplier.
    • multicastFlowControlSupplier

      public static FlowControlSupplier multicastFlowControlSupplier()
      Get the supplier of FlowControls which can be used for changing behavior of flow control for multicast publications.
      Returns:
      the FlowControlSupplier.
    • congestionControlSupplier

      public static CongestionControlSupplier congestionControlSupplier()
      Get the supplier of CongestionControl implementations which can be used for receivers.
      Returns:
      the CongestionControlSupplier
    • streamSessionLimit

      public static int streamSessionLimit()
      Get the configured limit for the number of streams per session.
      Returns:
      configured session limit
      Throws:
      AsciiNumberFormatException - if the property referenced by STREAM_SESSION_LIMIT_PROP_NAME is not a valid number
    • validateInitialWindowLength

      public static void validateInitialWindowLength(int initialWindowLength, int mtuLength)
      Validate that the initial window length is greater than MTU.
      Parameters:
      initialWindowLength - to be validated.
      mtuLength - against which to validate.
    • validateMtuLength

      public static void validateMtuLength(int mtuLength)
      Validate that the MTU is an appropriate length. MTU lengths must be a multiple of FrameDescriptor.FRAME_ALIGNMENT.
      Parameters:
      mtuLength - to be validated.
      Throws:
      ConfigurationException - if the MTU length is not valid.
    • terminationValidator

      public static TerminationValidator terminationValidator()
      Get the TerminationValidator implementations which can be used for validating a termination request sent to the driver to ensure the client has the right to terminate a driver.
      Returns:
      the TerminationValidator
    • validateSocketBufferLengths

      public static void validateSocketBufferLengths(MediaDriver.Context ctx)
      Validate that the socket buffer lengths are sufficient for the media driver configuration.
      Parameters:
      ctx - to be validated.
    • validatePageSize

      public static void validatePageSize(int pageSize)
      Validate that page size is valid and alignment is valid.
      Parameters:
      pageSize - to be checked.
      Throws:
      ConfigurationException - if the size is not as expected.
    • validateSessionIdRange

      public static void validateSessionIdRange(int low, int high)
      Validate the range of session ids based on a high and low value provided which accounts for the values wrapping.
      Parameters:
      low - value in the range.
      high - value in the range.
      Throws:
      ConfigurationException - if the values are not valid.
    • countersMetadataBufferLength

      public static int countersMetadataBufferLength(int counterValuesBufferLength)
      Compute the length of the CountersManager metadata buffer based on the length of the counters value buffer length.
      Parameters:
      counterValuesBufferLength - to compute the metadata buffer length from as a ratio.
      Returns:
      the length that should be used for the metadata buffer for counters.
    • validateUnblockTimeout

      public static void validateUnblockTimeout(long publicationUnblockTimeoutNs, long clientLivenessTimeoutNs, long timerIntervalNs)
      Validate that the timeouts for unblocking publications from a client are valid.
      Parameters:
      publicationUnblockTimeoutNs - after which an uncommitted publication will be unblocked.
      clientLivenessTimeoutNs - after which a client will be considered not alive.
      timerIntervalNs - interval at which the driver will check timeouts.
      Throws:
      ConfigurationException - if the values are not valid.
    • validateUntetheredTimeouts

      public static void validateUntetheredTimeouts(long untetheredWindowLimitTimeoutNs, long untetheredRestingTimeoutNs, long timerIntervalNs)
      Validate that the timeouts for untethered subscriptions are greater than timer interval.
      Parameters:
      untetheredWindowLimitTimeoutNs - after which an untethered subscription will be lingered.
      untetheredRestingTimeoutNs - after which an untethered subscription that is lingered can become active.
      timerIntervalNs - interval at which the driver will check timeouts.
      Throws:
      ConfigurationException - if the values are not valid.
    • sourceIdentity

      public static String sourceIdentity(InetSocketAddress srcAddress)
      Create a source identity for a given source address.
      Parameters:
      srcAddress - to be used for the identity.
      Returns:
      a source identity string for a given address.