public class SocketOptions extends Object
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_CONNECT_TIMEOUT_MILLIS
The default connection timeout in milliseconds if none is set explicitly using
setConnectTimeoutMillis(int) . |
static int |
DEFAULT_READ_TIMEOUT_MILLIS
The default read timeout in milliseconds if none is set explicitly using
setReadTimeoutMillis(int) . |
Constructor and Description |
---|
SocketOptions()
Creates a new
SocketOptions instance with default values. |
Modifier and Type | Method and Description |
---|---|
int |
getConnectTimeoutMillis()
The connection timeout in milliseconds.
|
Boolean |
getKeepAlive()
Returns whether TCP keepalive is enabled.
|
int |
getReadTimeoutMillis()
The per-host read timeout in milliseconds.
|
Integer |
getReceiveBufferSize()
Returns the hint to the size of the underlying buffers for incoming network I/O.
|
Boolean |
getReuseAddress()
Returns whether reuse-address is enabled.
|
Integer |
getSendBufferSize()
Returns the hint to the size of the underlying buffers for outgoing network I/O.
|
Integer |
getSoLinger()
Returns the linger-on-close timeout.
|
Boolean |
getTcpNoDelay()
Returns whether Nagle's algorithm is disabled.
|
SocketOptions |
setConnectTimeoutMillis(int connectTimeoutMillis)
Sets the connection timeout in milliseconds.
|
SocketOptions |
setKeepAlive(boolean keepAlive)
Sets whether to enable TCP keepalive.
|
SocketOptions |
setReadTimeoutMillis(int readTimeoutMillis)
Sets the per-host read timeout in milliseconds.
|
SocketOptions |
setReceiveBufferSize(int receiveBufferSize)
Sets a hint to the size of the underlying buffers for incoming network I/O.
|
SocketOptions |
setReuseAddress(boolean reuseAddress)
Sets whether to enable reuse-address.
|
SocketOptions |
setSendBufferSize(int sendBufferSize)
Sets a hint to the size of the underlying buffers for outgoing network I/O.
|
SocketOptions |
setSoLinger(int soLinger)
Sets the linger-on-close timeout.
|
SocketOptions |
setTcpNoDelay(boolean tcpNoDelay)
Sets whether to disable Nagle's algorithm.
|
public static final int DEFAULT_CONNECT_TIMEOUT_MILLIS
setConnectTimeoutMillis(int)
.
That default is of 5 seconds.
public static final int DEFAULT_READ_TIMEOUT_MILLIS
setReadTimeoutMillis(int)
.
That default is of 12 seconds so as to be slightly bigger that the default Cassandra timeout.
public SocketOptions()
SocketOptions
instance with default values.public int getConnectTimeoutMillis()
As the name implies, the connection timeout defines how long the driver waits to establish a new connection to a Cassandra node before giving up.
public SocketOptions setConnectTimeoutMillis(int connectTimeoutMillis)
The default value is DEFAULT_CONNECT_TIMEOUT_MILLIS
.
connectTimeoutMillis
- the timeout to set.SocketOptions
.public int getReadTimeoutMillis()
This defines how long the driver will wait for a given Cassandra node to answer a query.
Please note that this is not the maximum time a call to Session.execute(java.lang.String)
may block;
this is the maximum time that a call will wait for one particular Cassandra host, but other
hosts could be tried if one of them times out, depending on the RetryPolicy
in use. In other words, a Session.execute(java.lang.String)
call may theoretically wait up to getReadTimeoutMillis() *
<number_of_cassandra_hosts>
(though the total number of hosts tried for a given query also
depends on the LoadBalancingPolicy
in use). If you
want to control how long to wait for a query, use Session.executeAsync(java.lang.String)
and the ResultSetFuture#get(long, TimeUnit)
method.
Also note that for efficiency reasons, this read timeout is approximate: it has an accuracy of up to 100 milliseconds (i.e. it may fire up to 100 milliseconds late). It is not meant to be used for precise timeout, but rather as a protection against misbehaving Cassandra nodes.
public SocketOptions setReadTimeoutMillis(int readTimeoutMillis)
When setting this value, keep in mind the following:
*_request_timeout_in_ms
in cassandra.yaml
).
getReadTimeoutMillis()
for more details). If a high level
of precision on the timeout to a request is required, you should use the Future.get(long, java.util.concurrent.TimeUnit)
method.
If you don't call this method, the default value is DEFAULT_READ_TIMEOUT_MILLIS
.
readTimeoutMillis
- the timeout to set. If it is less than or equal to 0, read timeouts
are disabled.SocketOptions
.public Boolean getKeepAlive()
null
if it is not set.setKeepAlive(boolean)
public SocketOptions setKeepAlive(boolean keepAlive)
By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport (Java NIO or native epoll).
keepAlive
- whether to enable or disable the option.SocketOptions
.SocketOptions.TCP_NODELAY
public Boolean getReuseAddress()
null
if it is not set.setReuseAddress(boolean)
public SocketOptions setReuseAddress(boolean reuseAddress)
By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport (Java NIO or native epoll).
reuseAddress
- whether to enable or disable the option.SocketOptions
.SocketOptions.SO_REUSEADDR
public Integer getSoLinger()
null
if it is not set.setSoLinger(int)
public SocketOptions setSoLinger(int soLinger)
By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport (Java NIO or native epoll).
soLinger
- the new value.SocketOptions
.SocketOptions.SO_LINGER
public Boolean getTcpNoDelay()
true
means Nagle is disabled), or null
if it
is not set.setTcpNoDelay(boolean)
public SocketOptions setTcpNoDelay(boolean tcpNoDelay)
By default, this option is set to true
(Nagle disabled).
tcpNoDelay
- whether to enable or disable the option.SocketOptions
.SocketOptions.TCP_NODELAY
public Integer getReceiveBufferSize()
null
if it is not set.setReceiveBufferSize(int)
public SocketOptions setReceiveBufferSize(int receiveBufferSize)
By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport (Java NIO or native epoll).
receiveBufferSize
- the new value.SocketOptions
.SocketOptions.SO_RCVBUF
public Integer getSendBufferSize()
null
if it is not set.setSendBufferSize(int)
public SocketOptions setSendBufferSize(int sendBufferSize)
By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport (Java NIO or native epoll).
sendBufferSize
- the new value.SocketOptions
.SocketOptions.SO_SNDBUF
Copyright © 2012–2023. All rights reserved.