Hazelcast C++ Client
Hazelcast C++ Client Library
hazelcast::client::client_properties Class Reference

Client Properties is an internal class. More...

#include <client_properties.h>

Public Member Functions

 client_properties (const std::unordered_map< std::string, std::string > &properties)
 
const client_propertyget_heartbeat_timeout () const
 
const client_propertyget_heartbeat_interval () const
 
const client_propertyget_aws_member_port () const
 
const client_propertyget_invocation_retry_pause_millis () const
 
const client_propertyget_invocation_timeout_seconds () const
 
const client_propertyget_event_thread_count () const
 
const client_propertyget_internal_executor_pool_size () const
 
const client_propertyget_shuffle_member_list () const
 
const client_propertyget_max_concurrent_invocations () const
 
const client_propertyget_backpressure_backoff_timeout_millis () const
 
const client_propertyget_statistics_enabled () const
 
const client_propertyget_statistics_period_seconds () const
 
const client_propertybackup_timeout_millis () const
 
const client_propertyfail_on_indeterminate_state () const
 
const client_propertycloud_base_url () const
 
bool get_boolean (const client_property &property) const
 Returns the configured boolean value of a ClientProperty. More...
 
int32_t get_integer (const client_property &property) const
 Returns the configured int32_t value of a ClientProperty. More...
 
int64_t get_long (const client_property &property) const
 Returns the configured int64_t value of a ClientProperty. More...
 
std::string get_string (const client_property &property) const
 Returns the configured value of a ClientProperty as std::string. More...
 

Static Public Attributes

static const std::string PROP_HEARTBEAT_TIMEOUT
 Client will be sending heartbeat messages to members and this is the timeout. More...
 
static const std::string PROP_HEARTBEAT_TIMEOUT_DEFAULT = "60000"
 
static const std::string PROP_HEARTBEAT_INTERVAL
 Time interval in milliseconds between the heartbeats sent by the client to the nodes. More...
 
static const std::string PROP_HEARTBEAT_INTERVAL_DEFAULT = "5000"
 
static const std::string PROP_REQUEST_RETRY_COUNT
 Client will retry requests which either inherently retryable(idempotent client) or client_network_config#redoOperation is set to true_ This property is to configure retry count before client give up retrying. More...
 
static const std::string PROP_REQUEST_RETRY_COUNT_DEFAULT = "20"
 
static const std::string PROP_REQUEST_RETRY_WAIT_TIME
 Client will retry requests which either inherently retryable(idempotent client) or client_network_config#redoOperation is set to true. More...
 
static const std::string PROP_REQUEST_RETRY_WAIT_TIME_DEFAULT = "1"
 
static const std::string PROP_AWS_MEMBER_PORT = "hz-port"
 The discovery mechanism will discover only IP addresses. More...
 
static const std::string PROP_AWS_MEMBER_PORT_DEFAULT = "5701"
 
static const std::string INVOCATION_RETRY_PAUSE_MILLIS
 Pause time between each retry cycle of an invocation in milliseconds. More...
 
static const std::string INVOCATION_RETRY_PAUSE_MILLIS_DEFAULT
 
static const std::string INVOCATION_TIMEOUT_SECONDS
 When an invocation gets an exception because : More...
 
static const std::string INVOCATION_TIMEOUT_SECONDS_DEFAULT = "120"
 
static const std::string EVENT_THREAD_COUNT
 Number of the threads to handle the incoming event packets. More...
 
static const std::string EVENT_THREAD_COUNT_DEFAULT = "5"
 
static const std::string INTERNAL_EXECUTOR_POOL_SIZE
 
static const std::string INTERNAL_EXECUTOR_POOL_SIZE_DEFAULT = "3"
 
static const std::string SHUFFLE_MEMBER_LIST
 Client shuffles the given member list to prevent all clients to connect to the same node when this property is set to true. More...
 
static const std::string SHUFFLE_MEMBER_LIST_DEFAULT = "true"
 
static const std::string MAX_CONCURRENT_INVOCATIONS
 The maximum number of concurrent invocations allowed. More...
 
static const std::string MAX_CONCURRENT_INVOCATIONS_DEFAULT
 
static const std::string BACKPRESSURE_BACKOFF_TIMEOUT_MILLIS
 Control the maximum timeout in millis to wait for an invocation space to be available. More...
 
static const std::string BACKPRESSURE_BACKOFF_TIMEOUT_MILLIS_DEFAULT = "-1"
 
static const std::string STATISTICS_ENABLED
 Use to enable the client statistics collection. More...
 
static const std::string STATISTICS_ENABLED_DEFAULT = "false"
 
static const std::string STATISTICS_PERIOD_SECONDS
 The period in seconds the statistics sent to the cluster. More...
 
static const std::string STATISTICS_PERIOD_SECONDS_DEFAULT = "3"
 
static constexpr const char * OPERATION_BACKUP_TIMEOUT_MILLIS
 If an operation has backups, this property specifies how long the invocation will wait for acks from the backup replicas. More...
 
static constexpr const char * OPERATION_BACKUP_TIMEOUT_MILLIS_DEFAULT
 
static constexpr const char * FAIL_ON_INDETERMINATE_OPERATION_STATE
 When this configuration is enabled, if an operation has sync backups and acks are not received from backup replicas in time, or the member which owns primary replica of the target partition leaves the cluster, then the invocation fails with \indeterminate_operation_state. More...
 
static constexpr const char * FAIL_ON_INDETERMINATE_OPERATION_STATE_DEFAULT
 
static constexpr const char * CLOUD_URL_BASE = "hazelcast.client.cloud.url"
 Internal client property to change base url of cloud discovery endpoint. More...
 
static constexpr const char * CLOUD_URL_BASE_DEFAULT
 

Detailed Description

Client Properties is an internal class.

Only use properties documentations as references to be used in client_config::set_property

Definition at line 66 of file client_properties.h.

Member Function Documentation

◆ get_boolean()

bool hazelcast::client::client_properties::get_boolean ( const client_property property) const

Returns the configured boolean value of a ClientProperty.

Parameters
propertythe ClientProperty to get the value from
Returns
the value as bool

Definition at line 1153 of file client_impl.cpp.

1154 {
1155  return util::IOUtil::to_value<bool>(get_string(property));
1156 }
std::string get_string(const client_property &property) const
Returns the configured value of a ClientProperty as std::string.

◆ get_integer()

int32_t hazelcast::client::client_properties::get_integer ( const client_property property) const

Returns the configured int32_t value of a ClientProperty.

Parameters
propertythe ClientProperty to get the value from
Returns
the value as int32_t

Definition at line 1159 of file client_impl.cpp.

1160 {
1161  return util::IOUtil::to_value<int32_t>(get_string(property));
1162 }

◆ get_long()

int64_t hazelcast::client::client_properties::get_long ( const client_property property) const

Returns the configured int64_t value of a ClientProperty.

Parameters
propertythe ClientProperty to get the value from
Returns
the value as int64_t

Definition at line 1165 of file client_impl.cpp.

1166 {
1167  return util::IOUtil::to_value<int64_t>(get_string(property));
1168 }

◆ get_string()

std::string hazelcast::client::client_properties::get_string ( const client_property property) const

Returns the configured value of a ClientProperty as std::string.

Parameters
propertythe ClientProperty to get the value from
Returns
the value

Definition at line 1136 of file client_impl.cpp.

1137 {
1138  std::unordered_map<std::string, std::string>::const_iterator valueIt =
1139  properties_map_.find(property.get_name());
1140  if (valueIt != properties_map_.end()) {
1141  return valueIt->second;
1142  }
1143 
1144  const char* value = property.get_system_property();
1145  if (value != NULL) {
1146  return value;
1147  }
1148 
1149  return property.get_default_value();
1150 }

Member Data Documentation

◆ BACKPRESSURE_BACKOFF_TIMEOUT_MILLIS

const std::string hazelcast::client::client_properties::BACKPRESSURE_BACKOFF_TIMEOUT_MILLIS
static
Initial value:
=
"hazelcast.client.invocation.backoff.timeout.millis"

Control the maximum timeout in millis to wait for an invocation space to be available.

If an invocation can't be made because there are too many pending invocations, then an exponential backoff is done to give the system time to deal with the backlog of invocations. This property controls how long an invocation is allowed to wait before getting a com.hazelcast.core.hazelcast_overload.

When set to -1 then hazelcast_overload_exception is thrown immediately without any waiting.

Definition at line 218 of file client_properties.h.

◆ CLOUD_URL_BASE

constexpr const char* hazelcast::client::client_properties::CLOUD_URL_BASE = "hazelcast.client.cloud.url"
staticconstexpr

Internal client property to change base url of cloud discovery endpoint.

Used for testing cloud discovery.

Definition at line 263 of file client_properties.h.

◆ CLOUD_URL_BASE_DEFAULT

constexpr const char* hazelcast::client::client_properties::CLOUD_URL_BASE_DEFAULT
staticconstexpr
Initial value:
=
"api.viridian.hazelcast.com"

Definition at line 264 of file client_properties.h.

◆ EVENT_THREAD_COUNT

const std::string hazelcast::client::client_properties::EVENT_THREAD_COUNT
static
Initial value:
=
"hazelcast.client.event.thread.count"

Number of the threads to handle the incoming event packets.

Definition at line 181 of file client_properties.h.

◆ FAIL_ON_INDETERMINATE_OPERATION_STATE

constexpr const char* hazelcast::client::client_properties::FAIL_ON_INDETERMINATE_OPERATION_STATE
staticconstexpr
Initial value:
=
"hazelcast.client.operation.fail.on.indeterminate.state"

When this configuration is enabled, if an operation has sync backups and acks are not received from backup replicas in time, or the member which owns primary replica of the target partition leaves the cluster, then the invocation fails with \indeterminate_operation_state.

However, even if the invocation fails, there will not be any rollback on other successful replicas.

Definition at line 254 of file client_properties.h.

◆ FAIL_ON_INDETERMINATE_OPERATION_STATE_DEFAULT

constexpr const char* hazelcast::client::client_properties::FAIL_ON_INDETERMINATE_OPERATION_STATE_DEFAULT
staticconstexpr
Initial value:
=
"false"

Definition at line 256 of file client_properties.h.

◆ INTERNAL_EXECUTOR_POOL_SIZE

const std::string hazelcast::client::client_properties::INTERNAL_EXECUTOR_POOL_SIZE
static
Initial value:
=
"hazelcast.client.internal.executor.pool.size"

Definition at line 184 of file client_properties.h.

◆ INVOCATION_RETRY_PAUSE_MILLIS

const std::string hazelcast::client::client_properties::INVOCATION_RETRY_PAUSE_MILLIS
static
Initial value:
=
"hazelcast.client.invocation.retry.pause.millis"

Pause time between each retry cycle of an invocation in milliseconds.

Definition at line 161 of file client_properties.h.

◆ INVOCATION_RETRY_PAUSE_MILLIS_DEFAULT

const std::string hazelcast::client::client_properties::INVOCATION_RETRY_PAUSE_MILLIS_DEFAULT
static
Initial value:
=
"1000"

Definition at line 162 of file client_properties.h.

◆ INVOCATION_TIMEOUT_SECONDS

const std::string hazelcast::client::client_properties::INVOCATION_TIMEOUT_SECONDS
static
Initial value:
=
"hazelcast.client.invocation.timeout.seconds"

When an invocation gets an exception because :

  • Member throws an exception.
  • Connection between the client and member is closed.
  • Client's heartbeat requests are timed out. Time passed since invocation started is compared with this property. If the time is already passed, then the exception is delegated to the user. If not, the invocation is retried. Note that, if invocation gets no exception and it is a long running one, then it will not get any exception, no matter how small this timeout is set.

Definition at line 175 of file client_properties.h.

◆ MAX_CONCURRENT_INVOCATIONS

const std::string hazelcast::client::client_properties::MAX_CONCURRENT_INVOCATIONS
static
Initial value:
=
"hazelcast.client.max.concurrent.invocations"

The maximum number of concurrent invocations allowed.

To prevent the system from overloading, user can apply a constraint on the number of concurrent invocations. If the maximum number of concurrent invocations has been exceeded and a new invocation comes in, then hazelcast will throw hazelcast_overload_exception

By default it is configured as INT32_MAX.

Definition at line 204 of file client_properties.h.

◆ MAX_CONCURRENT_INVOCATIONS_DEFAULT

const std::string hazelcast::client::client_properties::MAX_CONCURRENT_INVOCATIONS_DEFAULT
static
Initial value:
=
util::IOUtil::to_string<int32_t>(INT32_MAX)

Definition at line 205 of file client_properties.h.

◆ OPERATION_BACKUP_TIMEOUT_MILLIS

constexpr const char* hazelcast::client::client_properties::OPERATION_BACKUP_TIMEOUT_MILLIS
staticconstexpr
Initial value:
=
"hazelcast.client.operation.backup.timeout.millis"

If an operation has backups, this property specifies how long the invocation will wait for acks from the backup replicas.

If acks are not received from some backups, there will not be any rollback on other successful replicas.

Definition at line 241 of file client_properties.h.

◆ OPERATION_BACKUP_TIMEOUT_MILLIS_DEFAULT

constexpr const char* hazelcast::client::client_properties::OPERATION_BACKUP_TIMEOUT_MILLIS_DEFAULT
staticconstexpr
Initial value:
=
"5000"

Definition at line 243 of file client_properties.h.

◆ PROP_AWS_MEMBER_PORT

const std::string hazelcast::client::client_properties::PROP_AWS_MEMBER_PORT = "hz-port"
static

The discovery mechanism will discover only IP addresses.

You can define the port on which Hazelcast is expected to be running here. This port number is not used by the discovery mechanism itself, it is only returned by the discovery mechanism. The default port is {}

Definition at line 155 of file client_properties.h.

◆ PROP_HEARTBEAT_INTERVAL

const std::string hazelcast::client::client_properties::PROP_HEARTBEAT_INTERVAL
static
Initial value:
=
"hazelcast_client_heartbeat_interval"

Time interval in milliseconds between the heartbeats sent by the client to the nodes.

attribute "hazelcast_client_heartbeat_interval" default value "5000"

Definition at line 121 of file client_properties.h.

◆ PROP_HEARTBEAT_TIMEOUT

const std::string hazelcast::client::client_properties::PROP_HEARTBEAT_TIMEOUT
static
Initial value:
=
"hazelcast_client_heartbeat_timeout"

Client will be sending heartbeat messages to members and this is the timeout.

If there is no any message passing between client and member within the given time via this property in milliseconds the connection will be closed.

attribute "hazelcast_client_heartbeat_timeout" default value "60000"

Definition at line 111 of file client_properties.h.

◆ PROP_REQUEST_RETRY_COUNT

const std::string hazelcast::client::client_properties::PROP_REQUEST_RETRY_COUNT
static
Initial value:
=
"hazelcast_client_request_retry_count"

Client will retry requests which either inherently retryable(idempotent client) or client_network_config#redoOperation is set to true_ This property is to configure retry count before client give up retrying.

attribute "hazelcast_client_request_retry_count" default value "20"

Definition at line 133 of file client_properties.h.

◆ PROP_REQUEST_RETRY_WAIT_TIME

const std::string hazelcast::client::client_properties::PROP_REQUEST_RETRY_WAIT_TIME
static
Initial value:
=
"hazelcast_client_request_retry_wait_time"

Client will retry requests which either inherently retryable(idempotent client) or client_network_config#redoOperation is set to true.

Time delay in seconds between retries.

attribute "hazelcast_client_request_retry_wait_time" default value "1"

Definition at line 145 of file client_properties.h.

◆ SHUFFLE_MEMBER_LIST

const std::string hazelcast::client::client_properties::SHUFFLE_MEMBER_LIST
static
Initial value:
=
"hazelcast.client.shuffle.member.list"

Client shuffles the given member list to prevent all clients to connect to the same node when this property is set to true.

When it is set to false, the client tries to connect to the nodes in the given order.

Definition at line 192 of file client_properties.h.

◆ STATISTICS_ENABLED

const std::string hazelcast::client::client_properties::STATISTICS_ENABLED
static
Initial value:
=
"hazelcast.client.statistics.enabled"

Use to enable the client statistics collection.

The default is false.

Definition at line 226 of file client_properties.h.

◆ STATISTICS_PERIOD_SECONDS

const std::string hazelcast::client::client_properties::STATISTICS_PERIOD_SECONDS
static
Initial value:
=
"hazelcast.client.statistics.period.seconds"

The period in seconds the statistics sent to the cluster.

Definition at line 232 of file client_properties.h.


The documentation for this class was generated from the following files: