org.apache.ignite.configuration

## 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 and Description
`ClientConfiguration()`

### Method Summary

All Methods Instance Methods Concrete Methods
`String[]` `getAddresses()`
`ClientAddressFinder` `getAddressesFinder()`
`Executor` `getAsyncContinuationExecutor()` Gets the async continuation executor.
`BinaryConfiguration` `getBinaryConfiguration()`
`long` `getHeartbeatInterval()` Gets the heartbeat message interval, in milliseconds.
`int` `getReceiveBufferSize()`
`long` `getReconnectThrottlingPeriod()`
`int` `getReconnectThrottlingRetries()`
`int` `getRetryLimit()`
`ClientRetryPolicy` `getRetryPolicy()` Gets the retry policy.
`int` `getSendBufferSize()`
`String` `getSslClientCertificateKeyStorePassword()`
`String` `getSslClientCertificateKeyStorePath()`
`String` `getSslClientCertificateKeyStoreType()`
`javax.cache.configuration.Factory<SSLContext>` `getSslContextFactory()`
`String` `getSslKeyAlgorithm()`
`SslMode` `getSslMode()`
`SslProtocol` `getSslProtocol()`
`String` `getSslTrustCertificateKeyStorePassword()`
`String` `getSslTrustCertificateKeyStorePath()`
`String` `getSslTrustCertificateKeyStoreType()`
`int` `getTimeout()`
`ClientTransactionConfiguration` `getTransactionConfiguration()` Gets transactions configuration.
`Map<String,String>` `getUserAttributes()` Returns user attributes which can be used on server node.
`String` `getUserName()`
`String` `getUserPassword()`
`boolean` `isHeartbeatEnabled()` Gets a value indicating whether heartbeats are enabled.
`boolean` `isPartitionAwarenessEnabled()`
`boolean` `isSslTrustAll()`
`boolean` `isTcpNoDelay()`
`ClientConfiguration` `setAddresses(String... addrs)` Set addresses of Ignite server nodes within a cluster.
`ClientConfiguration` `setAddressesFinder(ClientAddressFinder finder)`
`ClientConfiguration` `setAsyncContinuationExecutor(Executor asyncContinuationExecutor)` Sets the async continuation executor.
`ClientConfiguration` `setBinaryConfiguration(BinaryConfiguration binaryCfg)`
`ClientConfiguration` `setHeartbeatEnabled(boolean heartbeatEnabled)` Sets a value indicating whether heartbeats are enabled.
`ClientConfiguration` `setHeartbeatInterval(long heartbeatInterval)` Sets the heartbeat message interval, in milliseconds.
`ClientConfiguration` `setPartitionAwarenessEnabled(boolean partitionAwarenessEnabled)` Sets a value indicating whether partition awareness should be enabled.
`ClientConfiguration` `setReceiveBufferSize(int rcvBufSize)`
`ClientConfiguration` `setReconnectThrottlingPeriod(long reconnectThrottlingPeriod)` Sets reconnect throttling period.
`ClientConfiguration` `setReconnectThrottlingRetries(int reconnectThrottlingRetries)` Sets reconnect throttling retries.
`ClientConfiguration` `setRetryLimit(int retryLimit)` Sets the retry limit.
`ClientConfiguration` `setRetryPolicy(ClientRetryPolicy retryPolicy)` Sets the retry policy.
`ClientConfiguration` `setSendBufferSize(int sndBufSize)`
`ClientConfiguration` `setSslClientCertificateKeyStorePassword(String newVal)`
`ClientConfiguration` `setSslClientCertificateKeyStorePath(String newVal)`
`ClientConfiguration` `setSslClientCertificateKeyStoreType(String newVal)`
`ClientConfiguration` `setSslContextFactory(javax.cache.configuration.Factory<SSLContext> newVal)`
`ClientConfiguration` `setSslKeyAlgorithm(String newVal)`
`ClientConfiguration` `setSslMode(SslMode sslMode)`
`ClientConfiguration` `setSslProtocol(SslProtocol newVal)`
`ClientConfiguration` `setSslTrustAll(boolean newVal)`
`ClientConfiguration` `setSslTrustCertificateKeyStorePassword(String newVal)`
`ClientConfiguration` `setSslTrustCertificateKeyStorePath(String newVal)`
`ClientConfiguration` `setSslTrustCertificateKeyStoreType(String newVal)`
`ClientConfiguration` `setTcpNoDelay(boolean tcpNoDelay)`
`ClientConfiguration` `setTimeout(int timeout)`
`ClientConfiguration` `setTransactionConfiguration(ClientTransactionConfiguration txCfg)` Sets transactions configuration.
`ClientConfiguration` `setUserAttributes(Map<String,String> userAttrs)` Sets user attributes which can be used to send additional info to the server nodes.
`ClientConfiguration` `setUserName(String newVal)`
`ClientConfiguration` `setUserPassword(String newVal)`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### ClientConfiguration

    public ClientConfiguration()

### 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. See `ClientConnectorConfiguration.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()

Returns:
  A value indicating whether partition awareness should be enabled.

  Default is `true`: client sends requests directly to the primary node for the given cache key. To do so, connection is established to every known server node.

  When `false`, only one connection is established at a given moment to a random server node.

#### setPartitionAwarenessEnabled

    public ClientConfiguration setPartitionAwarenessEnabled(boolean partitionAwarenessEnabled)

Sets a value indicating whether partition awareness should be enabled.

Default is `true`: client sends requests directly to the primary node for the given cache key. To do so, connection is established to every known server node.

When `false`, only one connection is established at a given moment to a random server node.

Parameters:
  `partitionAwarenessEnabled` - Value indicating whether partition awareness 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.

When `retryLimit` is set, retry count will be limited even if the specified policy returns `true`.

Default is `ClientRetryAllPolicy`.

Parameters:
  `retryPolicy` - Retry policy.
Returns:
  `this` for chaining.

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### 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 from `GridRestRequest` or `ClientListenerAbstractConnectionContext` (depends on client type).

Parameters:
  `userAttrs` - User attributes.
Returns:
  `this` for chaining.

#### getAsyncContinuationExecutor

    public Executor getAsyncContinuationExecutor()

Gets the async continuation executor.

When `null` (default), `ForkJoinPool.commonPool()` is used.

When async client operation completes, corresponding `IgniteFuture` 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.

When `null` (default), `ForkJoinPool.commonPool()` is used.

When async client operation completes, corresponding `IgniteFuture` 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 also `heartbeatInterval`.

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 also `heartbeatInterval`.

Parameters:
  `heartbeatEnabled` - Whether to enable heartbeats.
Returns:
  `this` for chaining.

#### getHeartbeatInterval

    public long getHeartbeatInterval()

Gets the heartbeat message interval, in milliseconds. Default is `30_000`.

When server-side `ClientConnectorConfiguration.getIdleTimeout()` is not zero, effective heartbeat interval is set to `min(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 is `30_000`.

When server-side `ClientConnectorConfiguration.getIdleTimeout()` is not zero, effective heartbeat interval is set to `min(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.

${current.year} Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Database and Caching Platform | : ver. 2.13.0
Release Date | : April 20 2022