Package org.infinispan.client.hotrod.configuration
package org.infinispan.client.hotrod.configuration
Hot Rod client configuration API.
It is possible to configure the RemoteCacheManager
either programmatically,
using a URI or by constructing a Configuration
using a ConfigurationBuilder
or declaratively, by placing a properties file named hotrod-client.properties in the classpath.
A Hot Rod URI follows the following format:
hotrod[s]://[user[:password]@]host[:port][,host2[:port]][?property=value[&property2=value2]]
- hotrod or hotrods specifies whether to use a plain connection or TLS/SSL encryption.
- user and password optionally specify authentication credentials.
- host and port comma-separated list of one or more servers.
- property and value one or more ampersand-separated (&) property name/value pairs. The property name must omit the infinispan.client.hotrod prefix.
The following table describes the individual properties and the related programmatic configuration API.
Name | Type | Default | Description |
---|---|---|---|
Connection properties | |||
infinispan.client.hotrod.uri | String | N/A | Configures the client via a URI |
infinispan.client.hotrod.server_list | String | N/A | Adds a list of remote servers in the form: host1[:port][;host2[:port]]... |
infinispan.client.hotrod.tcp_no_delay | Boolean | true | Enables/disables the TCP_NO_DELAY flag |
infinispan.client.hotrod.tcp_keep_alive | Boolean | false | Enables/disables the TCP_KEEPALIVE flag |
infinispan.client.hotrod.client_intelligence | String | HASH_DISTRIBUTION_AWARE |
The ClientIntelligence |
infinispan.client.hotrod.request_balancing_strategy | String (class name) | RoundRobinBalancingStrategy |
The FailoverRequestBalancingStrategy |
infinispan.client.hotrod.socket_timeout | Integer | 60000 | The timeout for socket read/writes |
infinispan.client.hotrod.connect_timeout | Integer | 60000 | The timeout for connections |
infinispan.client.hotrod.max_retries | Integer | 10 | The maximum number of operation retries |
infinispan.client.hotrod.batch_size | Integer | 10000 | The size of a batches when iterating |
infinispan.client.hotrod.protocol_version | String | Latest version supported by the client in use | The Hot Rod version . |
infinispan.client.hotrod.dns_resolver_min_ttl | Integer | 0 | The minimum TTL of the cached DNS resource records in seconds. If the TTL of the DNS resource record returned by the DNS server is shorter than the minimum TTL, the resolver ignores the TTL provided by the DNS server and uses the minimum TTL instead. The defaults respect the DNS server TTL. |
infinispan.client.hotrod.dns_resolver_max_ttl | Integer | Integer.MAX_VALUE | The maximum TTL of the cached DNS resource records in seconds. If the TTL of the DNS resource record returned by the DNS server is longer than the maximum TTL, the resolver ignores the TTL provided by the DNS server and uses the maximum TTL instead. The defaults respect the DNS server TTL. |
infinispan.client.hotrod.dns_resolver_negative_ttl | Integer | 0 | Sets the TTL of the cache for the failed DNS queries in seconds. |
infinispan.client.hotrod.transport_factory | String | DefaultTransportFactory |
Specifies the transport factory to use. |
Connection pool properties | |||
infinispan.client.hotrod.connection_pool.max_active | Integer | -1 (no limit) | Maximum number of connections per server |
infinispan.client.hotrod.connection_pool.exhausted_action | String | WAIT |
Specifies what happens when asking for a connection from a server's pool, and that pool is exhausted . |
infinispan.client.hotrod.connection_pool.max_wait | Long | -1 (no limit) | Time to wait in milliseconds for a connection to become available when exhausted_action is WAIT |
infinispan.client.hotrod.connection_pool.min_idle | Integer | 1 | Minimum number of idle connections that each server should have available. |
infinispan.client.hotrod.connection_pool.min_evictable_idle_time | Integer | 1800000 | Minimum amount of time that an connection may sit idle in the pool |
infinispan.client.hotrod.connection_pool.max_pending_requests | Integer | 5 | Specifies maximum number of requests sent over single connection at one instant. |
Thread pool properties | |||
infinispan.client.hotrod.async_executor_factory | String (class name) | DefaultAsyncExecutorFactory |
The factory for creating threads |
infinispan.client.hotrod.default_executor_factory.pool_size | Integer | 99 | Size of the thread pool |
infinispan.client.hotrod.default_executor_factory.threadname_prefix | String | HotRod-client-async-pool | Prefix for the default executor thread names |
infinispan.client.hotrod.default_executor_factory.threadname_suffix | String | "" (empty value) | Suffix for the default executor thread names |
Marshalling properties | |||
infinispan.client.hotrod.marshaller | String (class name) | GenericJBossMarshaller if the infinispan-jboss-marshalling module is present on the classpath, otherwise ProtoStreamMarshaller is used |
The marshaller that serializes keys and values |
infinispan.client.hotrod.key_size_estimate | Integer | N/A | The estimated size of keys in bytes when marshalled. This configuration property is deprecated and does not take effect. |
infinispan.client.hotrod.value_size_estimate | Integer | N/A | The estimated size of values in bytes when marshalled. This configuration property is deprecated and does not take effect. |
infinispan.client.hotrod.force_return_values | Boolean | false | Whether to return values for puts/removes |
infinispan.client.hotrod.java_serial_allowlist | String | N/A | A class allowList which are trusted for unmarshalling. |
infinispan.client.hotrod.hash_function_impl.2 | String | ConsistentHashV2 |
The hash function to use. |
infinispan.client.hotrod.context-initializers | String (class names) | "" (empty value) | A list of SerializationContextInitializer implementation |
Encryption (TLS/SSL) properties | |||
infinispan.client.hotrod.use_ssl | Boolean | false | Enable TLS (implicitly enabled if a trust store is set) |
infinispan.client.hotrod.key_store_file_name | String | N/A | The filename of a keystore to use when using client certificate authentication. |
infinispan.client.hotrod.key_store_type | String | JKS | The keystore type |
infinispan.client.hotrod.key_store_password | String | N/A | The keystore password |
infinispan.client.hotrod.key_alias | String | N/A | The alias of the |
infinispan.client.hotrod.key_store_certificate_password | String | N/A | The certificate password in the keystore. |
infinispan.client.hotrod.trust_store_file_name | String | N/A | The path of the trust store. |
infinispan.client.hotrod.trust_store_type | String | JKS | The type of the trust store. Valid values are JKS, JCEKS, PCKS12 and PEM |
infinispan.client.hotrod.trust_store_password | String | N/A | The password of the trust store. |
infinispan.client.hotrod.sni_host_name | String | N/A | The SNI hostname to connect to. |
infinispan.client.hotrod.ssl_ciphers | String | N/A | A list of ciphers, separated with spaces and in order of preference, that are used during the SSL handshake to negotiate a cryptographic algorithm for key encrytion. By default, the SSL protocol (e.g. TLSv1.2) determines which ciphers to use. You should customize the cipher list with caution to avoid vulnerabilities from weak algorithms. For details about cipher lists and possible values, refer to OpenSSL documentation at https://www.openssl.org/docs/man1.1.1/man1/ciphers |
infinispan.client.hotrod.ssl_hostname_validation | boolean | true | Whether to enable TLS hostname validation using the rules defined in RFC 2818. |
infinispan.client.hotrod.ssl_protocol | String | N/A | The SSL protocol to use (e.g. TLSv1.2). |
infinispan.client.hotrod.ssl_provider | String | N/A | The security provider to use when creating the SSL engine. If left unspecified, it will attempt to use the openssl for the high-performance native implementation, otherwise the internal JDK will be used. |
Authentication properties | |||
infinispan.client.hotrod.use_auth | Boolean | Enabled implicitly with other authentication properties. | Enable authentication. |
infinispan.client.hotrod.sasl_mechanism | String | SCRAM-SHA-512if username and password are set EXTERNAL if a trust store is set. |
The SASL mechanism to use for authentication. |
infinispan.client.hotrod.auth_callback_handler | String | Automatically selected based on the configured SASL mechanism. | The CallbackHandler to use for providing credentials for authentication. |
infinispan.client.hotrod.auth_server_name | String | N/A | The server name to use (for Kerberos). |
infinispan.client.hotrod.auth_username | String | N/A | The username |
infinispan.client.hotrod.auth_password | String | N/A | The password |
infinispan.client.hotrod.auth_token | *String | *N/A | *The OAuth token |
*
infinispan.client.hotrod.auth_realm | String | default | The realm (for DIGEST-MD5 authentication). |
infinispan.client.hotrod.sasl_properties.* | String | N/A | A SASL property (mech-specific) |
Transaction properties | |||
infinispan.client.hotrod.transaction.transaction_manager_lookup | String (class name) | GenericTransactionManagerLookup |
[Deprecated] A class to lookup available transaction managers. |
infinispan.client.hotrod.transaction.transaction_mode | String (TransactionMode enum name) |
NONE |
[Deprecated] The default transaction mode |
infinispan.client.hotrod.transaction.timeout | long | 60000L | The TransactionConfigurationBuilder.timeout(long, java.util.concurrent.TimeUnit) timeout. |
Near cache properties | |||
infinispan.client.hotrod.near_cache.mode | String (NearCacheMode enum name) |
DISABLED |
The default near-cache mode . It is preferable to use the per-cache configuration. |
infinispan.client.hotrod.near_cache.max_entries | Integer | -1 (no limit) | The maximum number of entries to keep in the local cache. It is preferable to use the per-cache configuration. |
String (regex pattern, see Pattern ) |
null (matches all cache names) | A regex which matches caches for which near-caching should be enabled. This property is deprecated and it is preferable to use the per-cache configuration. |
|
Cross-site replication properties | |||
infinispan.client.hotrod.cluster.SITE | String HOST and int PORT configuration | Example for siteA and siteB: infinispan.client.hotrod.cluster.siteA=hostA1:11222; hostA2:11223` infinispan.client.hotrod.cluster.siteB=hostB1:11222; hostB2:11223` |
Relates to AbstractConfigurationChildBuilder.addCluster(java.lang.String) and
ClusterConfigurationBuilder.addClusterNode(java.lang.String, int) |
Statistics properties | |||
infinispan.client.hotrod.statistics | Boolean | Default value StatisticsConfiguration.ENABLED |
Relates to StatisticsConfigurationBuilder.enabled(boolean) |
infinispan.client.hotrod.jmx | Boolean | Default value StatisticsConfiguration.JMX_ENABLED |
Relates to StatisticsConfigurationBuilder.jmxEnabled(boolean) |
infinispan.client.hotrod.jmx_name | String | Default value StatisticsConfiguration.JMX_NAME |
Relates to StatisticsConfigurationBuilder.jmxName(java.lang.String) |
infinispan.client.hotrod.jmx_domain | String | Default value StatisticsConfiguration.JMX_DOMAIN |
Relates to StatisticsConfigurationBuilder.jmxDomain(java.lang.String) |
infinispan.client.hotrod.tracing.propagation_enabled | Boolean | Enabled implicitly by the presence of the OpenTelemetry API cn the client classpath. | Relates to ConfigurationBuilder.disableTracingPropagation() } ()} |
Per-cache properties | |||
In per-cache configuration properties, you can use wildcards with cachename, for example: cache-* . |
|||
If cache names include the '.' character you must enclose the cache name in square brackets, for example: [example.MyConfig] . |
|||
infinispan.client.hotrod.cache.cachename.configuration | XML | N/A | Provides a cache configuration, in XML format, to use when clients request caches that do not exist. |
infinispan.client.hotrod.cache.cachename.configuration_uri | XML | N/A | Provides a URI to a cache configuration, in XML format, to use when clients request caches that do not exist. |
infinispan.client.hotrod.cache.cachename.template_name | String | N/A | Names a cache template to use when clients request caches that do not exist. The cache template must be available on the server. |
infinispan.client.hotrod.cache.cachename.near_cache.mode | String (NearCacheMode enum name) |
DISABLED |
The near-cache RemoteCacheConfigurationBuilder.nearCacheMode(org.infinispan.client.hotrod.configuration.NearCacheMode) (NearCacheMode) mode} for this cache |
infinispan.client.hotrod.cache.cachename.near_cache.max_entries | Integer | -1 (no limit) | The maximum number of entries to keep locally for the specified cache. |
infinispan.client.hotrod.cache.cachename.force_return_values | Boolean | false | Whether to return values for puts/removes for the specified cache. |
infinispan.client.hotrod.cache.cachename.transaction.transaction_mode | String (TransactionMode enum name) |
NONE |
The default transaction mode for the specified cache. |
infinispan.client.hotrod.cache.cachename.transaction.transaction_manager_lookup | String (class name) | GenericTransactionManagerLookup |
The TransactionManagerLookup for the specified cache. |
infinispan.client.hotrod.cache.cachename.marshaller | String (class name) | ProtoStreamMarshaller unless another marshaller is used. |
The marshaller that serializes keys and values for the specified cache. |
- Public API
-
ClassDescriptionAbstractConfigurationChildBuilder.AbstractSecurityConfigurationChildBuilder.AuthenticationConfiguration.AuthenticationConfigurationBuilder.ClientIntelligence specifies the level of intelligence used by the client.Configuration.ConfigurationBuilder used to generate immutable
Configuration
objects to pass to theRemoteCacheManager(Configuration)
constructor.ConfigurationChildBuilder.ConnectionPoolConfiguration.ConnectionPoolConfigurationBuilder.ExecutorFactoryConfiguration.Configures executor factory.Enumeration for whenExhaustedAction.Decides how client-side near caching should work.Per-cache configuration.SaslQop.SaslStrength.SecurityConfiguration.SecurityConfigurationBuilder.ServerConfiguration.ServerConfigurationBuilder.SslConfiguration.SSLConfigurationBuilder.Configures client-side statisticsDeprecated, for removal: This API element is subject to removal in a future version.since 12.0.Deprecated, for removal: This API element is subject to removal in a future version.since 12.0.Specifies how theRemoteCache
is enlisted in theTransaction
.