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
    Modifier and Type | Method and Description
    --- | ---
    `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.

2022 Copyright © Apache Software Foundation
| Follow @ApacheIgnite
Ignite Database and Caching Platform | : ver. 2.13.0
Release Date | : April 20 2022