Class ClientConfiguration
- java.lang.Object
-
- org.apache.ignite.configuration.ClientConfiguration
-
- All Implemented Interfaces:
Serializable
public final class ClientConfiguration extends Object implements Serializable
TcpIgniteClient
configuration.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ClientConfiguration()
-
Method Summary
-
-
-
Method Detail
-
getAddresses
public String[] getAddresses()
- Returns:
- Host addresses.
-
setAddresses
public ClientConfiguration setAddresses(String... addrs)
Set addresses of Ignite server nodes within a cluster. An address can be IPv4 address or hostname, with or without port. If port is not set then Ignite will generate multiple addresses for default port range. SeeClientConnectorConfiguration.DFLT_PORT
,ClientConnectorConfiguration.DFLT_PORT_RANGE
.- Parameters:
addrs
- Host addresses.- Returns:
this
for chaining.
-
getAddressesFinder
public ClientAddressFinder getAddressesFinder()
- Returns:
- Finder that finds server node addresses.
-
setAddressesFinder
public ClientConfiguration setAddressesFinder(ClientAddressFinder finder)
- Parameters:
finder
- Finds server node addresses.- Returns:
this
for chaining.
-
isTcpNoDelay
public boolean isTcpNoDelay()
- Returns:
- Whether Nagle's algorithm is enabled.
-
setTcpNoDelay
public ClientConfiguration setTcpNoDelay(boolean tcpNoDelay)
- Parameters:
tcpNoDelay
- whether Nagle's algorithm is enabled.- Returns:
this
for chaining.
-
getTimeout
public int getTimeout()
- Returns:
- Send/receive timeout in milliseconds.
-
setTimeout
public ClientConfiguration setTimeout(int timeout)
- Parameters:
timeout
- Send/receive timeout in milliseconds.- Returns:
this
for chaining.
-
getSendBufferSize
public int getSendBufferSize()
- Returns:
- Send buffer size.
-
setSendBufferSize
public ClientConfiguration setSendBufferSize(int sndBufSize)
- Parameters:
sndBufSize
- Send buffer size.- Returns:
this
for chaining.
-
getReceiveBufferSize
public int getReceiveBufferSize()
- Returns:
- Send buffer size.
-
setReceiveBufferSize
public ClientConfiguration setReceiveBufferSize(int rcvBufSize)
- Parameters:
rcvBufSize
- Send buffer size.- Returns:
this
for chaining.
-
getBinaryConfiguration
public BinaryConfiguration getBinaryConfiguration()
- Returns:
- Configuration for Ignite Binary objects.
-
setBinaryConfiguration
public ClientConfiguration setBinaryConfiguration(BinaryConfiguration binaryCfg)
- Parameters:
binaryCfg
- Configuration for Ignite Binary objects.- Returns:
this
for chaining.
-
getSslMode
public SslMode getSslMode()
- Returns:
- SSL mode.
-
setSslMode
public ClientConfiguration setSslMode(SslMode sslMode)
- Parameters:
sslMode
- SSL mode.- Returns:
this
for chaining.
-
getSslClientCertificateKeyStorePath
public String getSslClientCertificateKeyStorePath()
- Returns:
- Ssl client certificate key store path.
-
setSslClientCertificateKeyStorePath
public ClientConfiguration setSslClientCertificateKeyStorePath(String newVal)
- Parameters:
newVal
- Ssl client certificate key store path.- Returns:
this
for chaining.
-
getSslClientCertificateKeyStorePassword
public String getSslClientCertificateKeyStorePassword()
- Returns:
- Ssl client certificate key store password.
-
setSslClientCertificateKeyStorePassword
public ClientConfiguration setSslClientCertificateKeyStorePassword(String newVal)
- Parameters:
newVal
- Ssl client certificate key store password.- Returns:
this
for chaining.
-
getSslClientCertificateKeyStoreType
public String getSslClientCertificateKeyStoreType()
- Returns:
- Ssl client certificate key store type.
-
setSslClientCertificateKeyStoreType
public ClientConfiguration setSslClientCertificateKeyStoreType(String newVal)
- Parameters:
newVal
- Ssl client certificate key store type.- Returns:
this
for chaining.
-
getSslTrustCertificateKeyStorePath
public String getSslTrustCertificateKeyStorePath()
- Returns:
- Ssl trust certificate key store path.
-
setSslTrustCertificateKeyStorePath
public ClientConfiguration setSslTrustCertificateKeyStorePath(String newVal)
- Parameters:
newVal
- Ssl trust certificate key store path.- Returns:
this
for chaining.
-
getSslTrustCertificateKeyStorePassword
public String getSslTrustCertificateKeyStorePassword()
- Returns:
- Ssl trust certificate key store password.
-
setSslTrustCertificateKeyStorePassword
public ClientConfiguration setSslTrustCertificateKeyStorePassword(String newVal)
- Parameters:
newVal
- Ssl trust certificate key store password.- Returns:
this
for chaining.
-
getSslTrustCertificateKeyStoreType
public String getSslTrustCertificateKeyStoreType()
- Returns:
- Ssl trust certificate key store type.
-
setSslTrustCertificateKeyStoreType
public ClientConfiguration setSslTrustCertificateKeyStoreType(String newVal)
- Parameters:
newVal
- Ssl trust certificate key store type.- Returns:
this
for chaining.
-
getSslKeyAlgorithm
public String getSslKeyAlgorithm()
- Returns:
- Ssl key algorithm.
-
setSslKeyAlgorithm
public ClientConfiguration setSslKeyAlgorithm(String newVal)
- Parameters:
newVal
- Ssl key algorithm.- Returns:
this
for chaining.
-
isSslTrustAll
public boolean isSslTrustAll()
- Returns:
- Flag indicating if certificate validation errors should be ignored.
-
setSslTrustAll
public ClientConfiguration setSslTrustAll(boolean newVal)
- Parameters:
newVal
- Flag indicating if certificate validation errors should be ignored.- Returns:
this
for chaining.
-
getSslProtocol
public SslProtocol getSslProtocol()
- Returns:
- Ssl protocol.
-
setSslProtocol
public ClientConfiguration setSslProtocol(SslProtocol newVal)
- Parameters:
newVal
- Ssl protocol.- Returns:
this
for chaining.
-
getUserName
public String getUserName()
- Returns:
- User name.
-
setUserName
public ClientConfiguration setUserName(String newVal)
- Parameters:
newVal
- User name.- Returns:
this
for chaining.
-
getUserPassword
public String getUserPassword()
- Returns:
- User password.
-
setUserPassword
public ClientConfiguration setUserPassword(String newVal)
- Parameters:
newVal
- User password.- Returns:
this
for chaining.
-
getSslContextFactory
public javax.cache.configuration.Factory<SSLContext> getSslContextFactory()
- Returns:
- SSL Context Factory.
-
setSslContextFactory
public ClientConfiguration setSslContextFactory(javax.cache.configuration.Factory<SSLContext> newVal)
- Parameters:
newVal
- SSL Context Factory.- Returns:
this
for chaining.
-
getTransactionConfiguration
public ClientTransactionConfiguration getTransactionConfiguration()
Gets transactions configuration.- Returns:
- Transactions configuration.
-
setTransactionConfiguration
public ClientConfiguration setTransactionConfiguration(ClientTransactionConfiguration txCfg)
Sets transactions configuration.- Parameters:
txCfg
- Transactions configuration.- Returns:
this
for chaining.
-
isPartitionAwarenessEnabled
public boolean isPartitionAwarenessEnabled()
Default is
Whentrue
: client sends requests directly to the primary node for the given cache key. To do so, connection is established to every known server node.false
, only one connection is established at a given moment to a random server node.Partition awareness functionality helps to avoid an additional network hop in the following scenarios:
- 1. Single-key operations API, like put(), get(), etc. However, the functionality has no effect on those
operations within explicit transactions
ClientTransactions.txStart()
. - 2.
ScanQuery.setPartition(Integer)
andIndexQuery.setPartition(Integer)
accept a partition number as a parameter with which the query is routed to a particular server node that stores the requested data.
- Returns:
- A value indicating whether partition awareness should be enabled.
- 1. Single-key operations API, like put(), get(), etc. However, the functionality has no effect on those
operations within explicit transactions
-
setPartitionAwarenessEnabled
public ClientConfiguration setPartitionAwarenessEnabled(boolean partitionAwarenessEnabled)
Sets a value indicating whether partition awareness should be enabled.Default is
Whentrue
: client sends requests directly to the primary node for the given cache key. To do so, connection is established to every known server node.false
, only one connection is established at a given moment to a random server node.Partition awareness functionality helps to avoid an additional network hop in the following scenarios:
- 1. Single-key operations API, like put(), get(), etc. However, the functionality has no effect on
those operations within explicit transactions
ClientTransactions.txStart()
. - 2.
ScanQuery.setPartition(Integer)
andIndexQuery.setPartition(Integer)
accept a partition number as a parameter with which the query is routed to a particular server node that stores the requested data.
- Parameters:
partitionAwarenessEnabled
- Value indicating whether partition awareness should be enabled.- Returns:
this
for chaining.
- 1. Single-key operations API, like put(), get(), etc. However, the functionality has no effect on
those operations within explicit transactions
-
isClusterDiscoveryEnabled
public boolean isClusterDiscoveryEnabled()
Gets a value indicating whether cluster discovery should be enabled.Default is
true
: client get addresses of server nodes from the cluster and connects to all of them.When
false
, client only connects to the addresses provided insetAddresses(String...)
andsetAddressesFinder(ClientAddressFinder)
.- Returns:
- A value indicating whether cluster discovery should be enabled.
-
setClusterDiscoveryEnabled
public ClientConfiguration setClusterDiscoveryEnabled(boolean clusterDiscoveryEnabled)
Sets a value indicating whether cluster discovery should be enabled.Default is
true
: client get addresses of server nodes from the cluster and connects to all of them.When
false
, client only connects to the addresses provided insetAddresses(String...)
andsetAddressesFinder(ClientAddressFinder)
.- Parameters:
clusterDiscoveryEnabled
- Value indicating whether cluster discovery should be enabled.- Returns:
this
for chaining.
-
getReconnectThrottlingPeriod
public long getReconnectThrottlingPeriod()
- Returns:
- reconnect throttling period.
-
setReconnectThrottlingPeriod
public ClientConfiguration setReconnectThrottlingPeriod(long reconnectThrottlingPeriod)
Sets reconnect throttling period.- Parameters:
reconnectThrottlingPeriod
- Reconnect throttling period.- Returns:
this
for chaining.
-
getReconnectThrottlingRetries
public int getReconnectThrottlingRetries()
- Returns:
- Reconnect throttling retries.
-
setReconnectThrottlingRetries
public ClientConfiguration setReconnectThrottlingRetries(int reconnectThrottlingRetries)
Sets reconnect throttling retries.- Parameters:
reconnectThrottlingRetries
- Reconnect throttling retries.- Returns:
this
for chaining.
-
getRetryLimit
public int getRetryLimit()
- Returns:
- Retry limit.
-
setRetryLimit
public ClientConfiguration setRetryLimit(int retryLimit)
Sets the retry limit. When a request fails due to a connection error, and multiple server connections are available, Ignite will retry the request on every connection. When this property is greater than zero, Ignite will limit the number of retries.- Parameters:
retryLimit
- Retry limit.- Returns:
this
for chaining.
-
getRetryPolicy
public ClientRetryPolicy getRetryPolicy()
Gets the retry policy.- Returns:
- Retry policy.
-
setRetryPolicy
public ClientConfiguration setRetryPolicy(ClientRetryPolicy retryPolicy)
Sets the retry policy. When a request fails due to a connection error, and multiple server connections are available, Ignite will retry the request if the specified policy allows it. WhenretryLimit
is set, retry count will be limited even if the specified policy returnstrue
. Default isClientRetryAllPolicy
.- Parameters:
retryPolicy
- Retry policy.- Returns:
this
for chaining.
-
getUserAttributes
public Map<String,String> getUserAttributes()
Returns user attributes which can be used on server node.- Returns:
- User attributes.
-
setUserAttributes
public ClientConfiguration setUserAttributes(Map<String,String> userAttrs)
Sets user attributes which can be used to send additional info to the server nodes. Sent attributes can be accessed on server nodes fromGridRestRequest
orClientListenerAbstractConnectionContext
(depends on client type).- Parameters:
userAttrs
- User attributes.- Returns:
this
for chaining.
-
getAsyncContinuationExecutor
public Executor getAsyncContinuationExecutor()
Gets the async continuation executor. Whennull
(default),ForkJoinPool.commonPool()
is used. When async client operation completes, correspondingIgniteFuture
listeners will be invoked using this executor. Thin client operation results are handled by a dedicated thread. This thread should be free from any extra work, and should not be not be used to execute future listeners directly.- Returns:
- Executor for async continuations.
-
setAsyncContinuationExecutor
public ClientConfiguration setAsyncContinuationExecutor(Executor asyncContinuationExecutor)
Sets the async continuation executor. Whennull
(default),ForkJoinPool.commonPool()
is used. When async client operation completes, correspondingIgniteFuture
listeners will be invoked using this executor. Thin client operation results are handled by a dedicated thread. This thread should be free from any extra work, and should not be not be used to execute future listeners directly.- Parameters:
asyncContinuationExecutor
- Executor for async continuations.- Returns:
this
for chaining.
-
isHeartbeatEnabled
public boolean isHeartbeatEnabled()
Gets a value indicating whether heartbeats are enabled. When thin client connection is idle (no operations are performed), heartbeat messages are sent periodically to keep the connection alive and detect potential half-open state. See alsoheartbeatInterval
.- Returns:
- Whether heartbeats are enabled.
-
setHeartbeatEnabled
public ClientConfiguration setHeartbeatEnabled(boolean heartbeatEnabled)
Sets a value indicating whether heartbeats are enabled. When thin client connection is idle (no operations are performed), heartbeat messages are sent periodically to keep the connection alive and detect potential half-open state. See alsoheartbeatInterval
.- Parameters:
heartbeatEnabled
- Whether to enable heartbeats.- Returns:
this
for chaining.
-
getHeartbeatInterval
public long getHeartbeatInterval()
Gets the heartbeat message interval, in milliseconds. Default is30_000
. When server-sideClientConnectorConfiguration.getIdleTimeout()
is not zero, effective heartbeat interval is set tomin(heartbeatInterval, idleTimeout / 3)
. When thin client connection is idle (no operations are performed), heartbeat messages are sent periodically to keep the connection alive and detect potential half-open state. *- Returns:
- Heartbeat interval.
-
setHeartbeatInterval
public ClientConfiguration setHeartbeatInterval(long heartbeatInterval)
Sets the heartbeat message interval, in milliseconds. Default is30_000
. When server-sideClientConnectorConfiguration.getIdleTimeout()
is not zero, effective heartbeat interval is set tomin(heartbeatInterval, idleTimeout / 3)
. When thin client connection is idle (no operations are performed), heartbeat messages are sent periodically to keep the connection alive and detect potential half-open state. *- Parameters:
heartbeatInterval
- Heartbeat interval, in milliseconds.- Returns:
this
for chaining.
-
isAutoBinaryConfigurationEnabled
public boolean isAutoBinaryConfigurationEnabled()
Gets a value indicating whether automatic binary configuration retrieval should be enabled. When enabled, compact footer (BinaryConfiguration.isCompactFooter()
) and name mapper (BinaryConfiguration.getNameMapper()
) settings will be retrieved from the server to match the cluster configuration. Default istrue
.- Returns:
- Whether automatic binary configuration is enabled.
-
setAutoBinaryConfigurationEnabled
public ClientConfiguration setAutoBinaryConfigurationEnabled(boolean autoBinaryConfigurationEnabled)
Sets a value indicating whether automatic binary configuration retrieval should be enabled. When enabled, compact footer (BinaryConfiguration.isCompactFooter()
) and name mapper (BinaryConfiguration.getNameMapper()
) settings will be retrieved from the server to match the cluster configuration. Default istrue
.- Parameters:
autoBinaryConfigurationEnabled
- Whether automatic binary configuration is enabled.- Returns:
this
for chaining.
-
setPartitionAwarenessMapperFactory
public ClientConfiguration setPartitionAwarenessMapperFactory(ClientPartitionAwarenessMapperFactory factory)
- Parameters:
factory
- Factory that accepts as parameters a cache name and the number of cache partitions received from a server node and produces key to partition mapping functions.- Returns:
this
for chaining.
-
getPartitionAwarenessMapperFactory
public ClientPartitionAwarenessMapperFactory getPartitionAwarenessMapperFactory()
- Returns:
- Factory that accepts as parameters a cache name and the number of cache partitions received from a server node and produces key to partition mapping functions.
-
setLogger
public ClientConfiguration setLogger(IgniteLogger logger)
Sets the logger.- Parameters:
logger
- Logger.- Returns:
this
for chaining.
-
getLogger
public IgniteLogger getLogger()
Gets the logger.- Returns:
- Logger.
-
setEventListeners
public ClientConfiguration setEventListeners(EventListener... listeners)
- Parameters:
listeners
- Clent event listeners.- Returns:
this
for chaining.
-
getEventListeners
public EventListener[] getEventListeners()
- Returns:
- Client event listeners.
-
-