Package org.xnio
Class Options
java.lang.Object
org.xnio.Options
Common channel options.
-
Field Summary
FieldsModifier and TypeFieldDescriptionEnable or disable blocking I/O for a newly created channel thread.Configure a server with the specified backlog.The number of connections to create per connection-balancing token, if connection-balancing is enabled.The number of balancing tokens, if connection-balancing is enabled.Enable broadcast support for IP datagram sockets.Configure a TCP socket to send anRST
packet on close.The compression level to apply for compressing streams and channels.static final Option
<CompressionType> The compression type to apply for compressing streams and channels.The high water mark for a server's connections.The low water mark for a server's connections.Specify that output should be buffered.static final Option
<FileAccess> The file access mode to use when opening a file.A flag which indicates that opened files should be appended to.A flag which indicates that a file should be created if it does not exist (true
by default for writing files,false
by default for reading files).Set the IP traffic class/type-of-service for the channel.Configure a channel to send TCP keep-alive messages in an implementation-dependent manner.The maximum inbound message size.The maximum outbound message size.Enable multicast support for a socket.Set the multicast time-to-live field for datagram sockets.Configure a read timeout for a socket, in milliseconds.The receive buffer size.Configure an IP socket to reuse addresses.A list of disallowed SASL mechanisms.A list of SASL mechanisms, in decreasing order of preference.Specify whether SASL mechanisms which implement forward secrecy between sessions are required.Specify whether SASL mechanisms which are susceptible to active (non-dictionary) attacks are permitted.Specify whether SASL mechanisms which accept anonymous logins are permitted.Specify whether SASL mechanisms which are susceptible to passive dictionary attacks are permitted.Specify whether SASL mechanisms which are susceptible to simple plain passive attacks are permitted.Specify whether SASL mechanisms which pass client credentials are required.A list of provider specific SASL properties.Specify the SASL quality-of-protection to use.Specify whether SASL mechanisms should attempt to reuse authenticated session information.Specify whether the SASL server must authenticate to the client.static final Option
<SaslStrength> Specify the SASL cipher strength to use.Determine whether the channel is encrypted, or employs some other level of security.The send buffer size.Specify whether read and write operations should be split among separate threads.The size of the allocation region to use for SSL application buffers.The application buffer size for SSL.static final Option
<SslClientAuthMode> Specify the SSL client authentication mode.The size of the SSL client session cache.The SSL client session timeout (in seconds).Enable or disable session creation for an SSL connection.Specify whether SSL should be enabled.Specify the cipher suites for an SSL/TLS session.Specify the enabled protocols for an SSL/TLS session.static final Option
<Sequence<Class<? extends KeyManager>>> The possible key manager classes to use for a JSSE SSL context.static final Option
<Sequence<Class<? extends TrustManager>>> The possible trust store classes to use for a JSSE SSL context.Hint to the SSL engine that the key manager implementation(s) is/are non-blocking, so they can be executed in the I/O thread, possibly improving performance by decreasing latency.Hint to the SSL engine that the trust manager implementation(s) is/are non-blocking, so they can be executed in the I/O thread, possibly improving performance by decreasing latency.The size of the allocation region to use for SSL packet buffers.The packet buffer size for SSL.Specify the (non-authoritative) name of the peer host to use for the purposes of session reuse, as well as for the use of certain cipher suites (such as Kerberos).Specify the (non-authoritative) port number of the peer port number to use for the purposes of session reuse, as well as for the use of certain cipher suites.Specify the protocol name for an SSL context.Specify the requested provider for an SSL/TLS session.The configuration of a secure RNG for SSL usage.The size of the SSL server session cache.The SSL server session timeout (in seconds).Specify whether to use STARTTLS mode (in which a connection starts clear and switches to TLS on demand).Get the supported cipher suites for an SSL/TLS session.Get the supported protocols for an SSL/TLS session.Specify whether SSL conversations should be in client or server mode.The stack size (in bytes) to attempt to use for worker threads.Configure a TCP socket to disable Nagle's algorithm.Configure a TCP socket to receive out-of-band data alongside regular data.Specify whether worker threads should be daemon threads.The thread priority for newly created worker threads.Specify whether direct buffers should be used for socket communications.The poll interval for poll based file system watchers.Deprecated.This option is now ignored.Specify whether a server, acceptor, or connector should be attached to write threads.Specify the number of I/O threads to create for the worker.The name to use for a newly created worker.Specify the number of I/O threads to devote to reading for split thread channels.Specify the number of "core" threads for the worker task thread pool.Specify the number of milliseconds to keep non-core task threads alive.Specify the maximum number of worker tasks to allow before rejecting.Specify the maximum number of threads for the worker task thread pool.Specify the number of I/O threads to devote to writing for split thread channels.Configure a write timeout for a socket, in milliseconds. -
Method Summary
-
Field Details
-
ALLOW_BLOCKING
Enable or disable blocking I/O for a newly created channel thread. -
MULTICAST
Enable multicast support for a socket. The value type for this option isboolean
. Note that some implementations may add overhead when multicast sockets are in use. -
BROADCAST
Enable broadcast support for IP datagram sockets. The value type for this option isboolean
. If you intend to send datagrams to a broadcast address, this option must be enabled. -
CLOSE_ABORT
Configure a TCP socket to send anRST
packet on close. The value type for this option isboolean
. -
RECEIVE_BUFFER
The receive buffer size. The value type for this option isint
. This may be used by an XNIO provider directly, or it may be passed to the underlying operating system, depending on the channel type. Buffer sizes must always be greater than 0. Note that this value is just a hint; if the application needs to know what value was actually stored for this option, it must callgetOption(Options.RECEIVE_BUFFER)
on the channel to verify. On most operating systems, the receive buffer size may not be changed on a socket after it is connected; in these cases, callingsetOption(Options.RECEIVE_BUFFER, val)
will returnnull
. -
REUSE_ADDRESSES
Configure an IP socket to reuse addresses. The value type for this option isboolean
. -
SEND_BUFFER
The send buffer size. The value type for this option isint
. This may be used by an XNIO provider directly, or it may be passed to the underlying operating system, depending on the channel type. Buffer sizes must always be greater than 0. Note that this value is just a hint; if the application needs to know what value was actually stored for this option, it must callgetOption(Options.SEND_BUFFER)
on the channel to verify. -
TCP_NODELAY
Configure a TCP socket to disable Nagle's algorithm. The value type for this option isboolean
. -
MULTICAST_TTL
Set the multicast time-to-live field for datagram sockets. The value type for this option isint
. -
IP_TRAFFIC_CLASS
Set the IP traffic class/type-of-service for the channel. The value type for this option isint
. -
TCP_OOB_INLINE
Configure a TCP socket to receive out-of-band data alongside regular data. The value type for this option isboolean
. -
KEEP_ALIVE
Configure a channel to send TCP keep-alive messages in an implementation-dependent manner. The value type for this option isboolean
. -
BACKLOG
Configure a server with the specified backlog. The value type for this option isint
. -
READ_TIMEOUT
Configure a read timeout for a socket, in milliseconds. If the given amount of time elapses without a successful read taking place, the socket's next read will throw aReadTimeoutException
. -
WRITE_TIMEOUT
Configure a write timeout for a socket, in milliseconds. If the given amount of time elapses without a successful write taking place, the socket's next write will throw aWriteTimeoutException
. -
MAX_INBOUND_MESSAGE_SIZE
The maximum inbound message size.- Since:
- 2.0
-
MAX_OUTBOUND_MESSAGE_SIZE
The maximum outbound message size.- Since:
- 2.0
-
SSL_ENABLED
Specify whether SSL should be enabled. If specified in conjunction withSSL_STARTTLS
then SSL will not be negotiated untilSslChannel.startHandshake()
orSslConnection.startHandshake()
is called.- Since:
- 3.0
-
SSL_CLIENT_AUTH_MODE
Specify the SSL client authentication mode.- Since:
- 2.0
-
SSL_ENABLED_CIPHER_SUITES
Specify the cipher suites for an SSL/TLS session. If a listed cipher suites is not supported, it is ignored; however, if you specify a list of cipher suites, none of which are supported, an exception will be thrown.- Since:
- 2.0
-
SSL_SUPPORTED_CIPHER_SUITES
Get the supported cipher suites for an SSL/TLS session. This option is generally read-only.- Since:
- 2.0
-
SSL_ENABLED_PROTOCOLS
Specify the enabled protocols for an SSL/TLS session. If a listed protocol is not supported, it is ignored; however, if you specify a list of protocols, none of which are supported, an exception will be thrown.- Since:
- 2.0
-
SSL_SUPPORTED_PROTOCOLS
Get the supported protocols for an SSL/TLS session. This option is generally read-only.- Since:
- 2.0
-
SSL_PROVIDER
Specify the requested provider for an SSL/TLS session.- Since:
- 2.0
-
SSL_PROTOCOL
Specify the protocol name for an SSL context.- Since:
- 2.1
-
SSL_ENABLE_SESSION_CREATION
Enable or disable session creation for an SSL connection. Defaults totrue
to enable session creation.- Since:
- 2.0
-
SSL_USE_CLIENT_MODE
Specify whether SSL conversations should be in client or server mode. Defaults tofalse
(use server mode). If set totrue
, the client and server side swap negotiation roles.- Since:
- 2.0
-
SSL_CLIENT_SESSION_CACHE_SIZE
The size of the SSL client session cache.- Since:
- 3.0
-
SSL_CLIENT_SESSION_TIMEOUT
The SSL client session timeout (in seconds).- Since:
- 3.0
-
SSL_SERVER_SESSION_CACHE_SIZE
The size of the SSL server session cache.- Since:
- 3.0
-
SSL_SERVER_SESSION_TIMEOUT
The SSL server session timeout (in seconds).- Since:
- 3.0
-
SSL_JSSE_KEY_MANAGER_CLASSES
The possible key manager classes to use for a JSSE SSL context.- Since:
- 3.0
-
SSL_JSSE_TRUST_MANAGER_CLASSES
The possible trust store classes to use for a JSSE SSL context.- Since:
- 3.0
-
SSL_RNG_OPTIONS
The configuration of a secure RNG for SSL usage.- Since:
- 3.0
-
SSL_PACKET_BUFFER_SIZE
The packet buffer size for SSL.- Since:
- 3.0
-
SSL_APPLICATION_BUFFER_SIZE
The application buffer size for SSL.- Since:
- 3.0
-
SSL_PACKET_BUFFER_REGION_SIZE
The size of the allocation region to use for SSL packet buffers.- Since:
- 3.0
-
SSL_APPLICATION_BUFFER_REGION_SIZE
The size of the allocation region to use for SSL application buffers.- Since:
- 3.0
-
SSL_STARTTLS
Specify whether to use STARTTLS mode (in which a connection starts clear and switches to TLS on demand).- Since:
- 3.0
-
SSL_PEER_HOST_NAME
Specify the (non-authoritative) name of the peer host to use for the purposes of session reuse, as well as for the use of certain cipher suites (such as Kerberos). If not given, defaults to the host name of the socket address of the peer. -
SSL_PEER_PORT
Specify the (non-authoritative) port number of the peer port number to use for the purposes of session reuse, as well as for the use of certain cipher suites. If not given, defaults to the port number of the socket address of the peer. -
SSL_NON_BLOCKING_KEY_MANAGER
Hint to the SSL engine that the key manager implementation(s) is/are non-blocking, so they can be executed in the I/O thread, possibly improving performance by decreasing latency. -
SSL_NON_BLOCKING_TRUST_MANAGER
Hint to the SSL engine that the trust manager implementation(s) is/are non-blocking, so they can be executed in the I/O thread, possibly improving performance by decreasing latency. -
USE_DIRECT_BUFFERS
Specify whether direct buffers should be used for socket communications.- Since:
- 3.0
-
SECURE
Determine whether the channel is encrypted, or employs some other level of security. The interpretation of this flag is specific to the channel in question; however, whatever the channel type, this flag is generally read-only. -
SASL_POLICY_FORWARD_SECRECY
Specify whether SASL mechanisms which implement forward secrecy between sessions are required.- See Also:
-
SASL_POLICY_NOACTIVE
Specify whether SASL mechanisms which are susceptible to active (non-dictionary) attacks are permitted.- See Also:
-
SASL_POLICY_NOANONYMOUS
Specify whether SASL mechanisms which accept anonymous logins are permitted.- See Also:
-
SASL_POLICY_NODICTIONARY
Specify whether SASL mechanisms which are susceptible to passive dictionary attacks are permitted.- See Also:
-
SASL_POLICY_NOPLAINTEXT
Specify whether SASL mechanisms which are susceptible to simple plain passive attacks are permitted.- See Also:
-
SASL_POLICY_PASS_CREDENTIALS
Specify whether SASL mechanisms which pass client credentials are required.- See Also:
-
SASL_QOP
Specify the SASL quality-of-protection to use.- See Also:
-
SASL_STRENGTH
Specify the SASL cipher strength to use.- See Also:
-
SASL_SERVER_AUTH
Specify whether the SASL server must authenticate to the client.- See Also:
-
SASL_REUSE
Specify whether SASL mechanisms should attempt to reuse authenticated session information.- See Also:
-
SASL_MECHANISMS
A list of SASL mechanisms, in decreasing order of preference. -
SASL_DISALLOWED_MECHANISMS
A list of disallowed SASL mechanisms. -
SASL_PROPERTIES
A list of provider specific SASL properties. -
FILE_ACCESS
The file access mode to use when opening a file. -
FILE_APPEND
A flag which indicates that opened files should be appended to. Some platforms do not support both append andFileAccess.READ_WRITE
at the same time. -
FILE_CREATE
A flag which indicates that a file should be created if it does not exist (true
by default for writing files,false
by default for reading files). -
STACK_SIZE
The stack size (in bytes) to attempt to use for worker threads. -
WORKER_NAME
The name to use for a newly created worker. If not specified, the string "XNIO" will be used. The worker name is used as a part of the thread name for created threads, and for any management constructs. -
THREAD_PRIORITY
The thread priority for newly created worker threads. If not specified, the platform default value will be used. -
THREAD_DAEMON
Specify whether worker threads should be daemon threads. Defaults tofalse
. -
WORKER_IO_THREADS
Specify the number of I/O threads to create for the worker. If not specified, a default will be chosen. -
WORKER_READ_THREADS
Specify the number of I/O threads to devote to reading for split thread channels. If not specified, a default will be chosen to be roughly half of the worker I/O threads, or the number of threads not specified for writing. -
WORKER_WRITE_THREADS
Specify the number of I/O threads to devote to writing for split thread channels. If not specified, a default will be chosen to be roughly half of the worker I/O threads, or the number of threads not specified for reading. -
SPLIT_READ_WRITE_THREADS
Specify whether read and write operations should be split among separate threads. Iftrue
, then each directional channel may be accessed concurrently with respect to one another, and will have different worker threads assigned; otherwise, both directions will share a worker thread and must not be accessed independently. -
WORKER_ESTABLISH_WRITING
Specify whether a server, acceptor, or connector should be attached to write threads. By default, the establishing phase of connections are attached to read threads. Use this option if the client or server writes a message directly upon connect and a split threads configuration is used. -
WORKER_ACCEPT_THREADS
Deprecated.This option is now ignored. All I/O threads are used for accept, except in the case of split read/write threads, in which case only read or write threads will be used as determined byWORKER_ESTABLISH_WRITING
.Specify the number of accept threads a single socket server should have. Specifying more than one can result in spurious wakeups for a socket server under low connection volume, but higher throughput at high connection volume. The minimum value is 1, and the maximum value is equal to the number of available worker threads. -
WORKER_TASK_CORE_THREADS
Specify the number of "core" threads for the worker task thread pool. -
WORKER_TASK_MAX_THREADS
Specify the maximum number of threads for the worker task thread pool. -
WORKER_TASK_KEEPALIVE
Specify the number of milliseconds to keep non-core task threads alive. -
WORKER_TASK_LIMIT
Specify the maximum number of worker tasks to allow before rejecting. -
CORK
Specify that output should be buffered. The exact behavior of the buffering is not specified; it may flush based on buffered size or time. An explicitSuspendableWriteChannel.flush()
will still cause the channel to flush its contents immediately. -
CONNECTION_HIGH_WATER
The high water mark for a server's connections. Once this number of connections have been accepted, accepts will be suspended for that server. -
CONNECTION_LOW_WATER
The low water mark for a server's connections. Once the number of active connections have dropped below this number, accepts can be resumed for that server. -
COMPRESSION_LEVEL
The compression level to apply for compressing streams and channels. -
COMPRESSION_TYPE
The compression type to apply for compressing streams and channels. -
BALANCING_TOKENS
The number of balancing tokens, if connection-balancing is enabled. Must be less than the number of I/O threads, or 0 to disable balancing and just accept opportunistically. -
BALANCING_CONNECTIONS
The number of connections to create per connection-balancing token, if connection-balancing is enabled. -
WATCHER_POLL_INTERVAL
The poll interval for poll based file system watchers. Defaults to 5000ms. Ignored on Java 7 and later.
-