VMware GemFire Native C++ Reference
9.1
|
This interface provides for the configuration and creation of instances of Pool. More...
Inherits apache::geode::client::SharedBase.
Public Member Functions | |
void | addLocator (const char *host, int port) |
Adds a locator, given its host and port, to this factory. More... | |
void | addServer (const char *host, int port) |
Adds a server, given its host and port, to this factory. More... | |
PoolPtr | create (const char *name) |
Creates a new Pool for connecting a client to a set of Geode Cache Servers. More... | |
void | preserveSB () const |
Atomically increment reference count. More... | |
int32_t | refCount () |
void | releaseSB () const |
Atomically decrement reference count, the SharedBase object is automatically deleted when its reference count goes to zero. More... | |
void | reset () |
Resets the configuration of this factory to its defaults. More... | |
void | setFreeConnectionTimeout (int connectionTimeout) |
Sets the free connection timeout for this pool. More... | |
void | setIdleTimeout (long idleTimeout) |
Sets the amount of time a connection can be idle before expiring the connection. More... | |
void | setLoadConditioningInterval (int loadConditioningInterval) |
Sets the load conditioning interval for this pool. More... | |
void | setMaxConnections (int maxConnections) |
Sets the max number of client to server connections that the pool will create. More... | |
void | setMinConnections (int minConnections) |
Sets the minimum number of connections to keep available at all times. More... | |
void | setMultiuserAuthentication (bool multiuserAuthentication) |
Sets whether Pool is in multi user secure mode. More... | |
void | setPingInterval (long pingInterval) |
The frequency with which servers must be pinged to verify that they are still alive. More... | |
void | setPRSingleHopEnabled (bool enabled) |
By default setPRSingleHopEnabled is true The client is aware of location of partitions on servers hosting Regions. More... | |
void | setReadTimeout (int timeout) |
Sets the number of milliseconds to wait for a response from a server before timing out the operation and trying another server (if any are available). More... | |
void | setRetryAttempts (int retryAttempts) |
Set the number of times to retry a request after timeout/exception. More... | |
void | setServerGroup (const char *group) |
Configures the group which contains all the servers that this pool connects to. More... | |
void | setSocketBufferSize (int bufferSize) |
Sets the socket buffer size for each connection made in this pool. More... | |
void | setStatisticInterval (int statisticInterval) |
The frequency with which the client statistics must be sent to the server. More... | |
void | setSubscriptionAckInterval (int ackInterval) |
Sets the is the interval in milliseconds to wait before sending acknowledgements to the bridge server for events received from the server subscriptions. More... | |
void | setSubscriptionEnabled (bool enabled) |
If set to true then the created pool will have server-to-client subscriptions enabled. More... | |
void | setSubscriptionMessageTrackingTimeout (int messageTrackingTimeout) |
Sets the messageTrackingTimeout attribute which is the time-to-live period, in milliseconds, for subscription events the client has received from the server. More... | |
void | setSubscriptionRedundancy (int redundancy) |
Sets the redundancy level for this pools server-to-client subscriptions. More... | |
void | setThreadLocalConnections (bool threadLocalConnections) |
Sets the thread local connections policy for this pool. More... | |
void | setUpdateLocatorListInterval (long updateLocatorListInterval) |
The frequency with which client updates the locator list. More... | |
Static Public Attributes | |
static const int | DEFAULT_FREE_CONNECTION_TIMEOUT = 10000 |
The default amount of time, in milliseconds, which we will wait for a free connection if max connections is set and all of the connections are in use. More... | |
static const long | DEFAULT_IDLE_TIMEOUT = 5000 |
The default amount of time in milliseconds, to wait for a connection to become idle. More... | |
static const int | DEFAULT_LOAD_CONDITIONING_INTERVAL = 1000 * 60 * 5 |
The default interval in which the pool will check to see if a connection to a given server should be moved to a different server to improve the load balance. More... | |
static const int | DEFAULT_MAX_CONNECTIONS = -1 |
The default maximum number of connections to be created. More... | |
static const int | DEFAULT_MIN_CONNECTIONS = 1 |
The default number of connections to be created initially. More... | |
static const bool | DEFAULT_MULTIUSER_SECURE_MODE = false |
Whether client is in multi user secure mode. More... | |
static const long | DEFAULT_PING_INTERVAL = 10000 |
The default frequency, in milliseconds, to ping servers. More... | |
static const bool | DEFAULT_PR_SINGLE_HOP_ENABLED = true |
The default value for whether to have single hop optimisations enabled. More... | |
static const int | DEFAULT_READ_TIMEOUT = 10000 |
The default amount of time, in milliseconds, to wait for a response from a server. More... | |
static const int | DEFAULT_RETRY_ATTEMPTS = -1 |
The default number of times to retry an operation after a timeout or exception. More... | |
static const char * | DEFAULT_SERVER_GROUP |
The default server group. More... | |
static const int | DEFAULT_SOCKET_BUFFER_SIZE = 32768 |
The default size in bytes of the socket buffer on each connection established. More... | |
static const int | DEFAULT_STATISTIC_INTERVAL = -1 |
The default frequency, in milliseconds, that client statistics are sent to the server. More... | |
static const int | DEFAULT_SUBSCRIPTION_ACK_INTERVAL = 100 |
The default amount of time, in milliseconds, to wait before sending an acknowledgement to the server about events received from the subscriptions. More... | |
static const bool | DEFAULT_SUBSCRIPTION_ENABLED = false |
The default value for whether connections should have affinity to the thread that last used them. More... | |
static const int | DEFAULT_SUBSCRIPTION_MESSAGE_TRACKING_TIMEOUT = 900000 |
The default amount of time, in milliseconds, that messages sent from a server to a client will be tracked. More... | |
static const int | DEFAULT_SUBSCRIPTION_REDUNDANCY = 0 |
The default redundancy for servers holding subscriptions established by this client. More... | |
static const bool | DEFAULT_THREAD_LOCAL_CONN = false |
Whether thread local connection is enabled. More... | |
static const long | DEFAULT_UPDATE_LOCATOR_LIST_INTERVAL = 5000 |
The default frequency, in milliseconds, to update the locator list. More... | |
This interface provides for the configuration and creation of instances of Pool.
Every pool needs to have at least one locator or server added to it. Locators should be added unless direct connections to bridge servers are desired.
The setter methods are used to specify non-default values for the other pool properties.
Once it is configured create will produce an instance.
The factory can be restored to its default configuration by calling reset.
Instances of this interface can be created by calling Cache#getPoolFactory.
If a subscription is going to be made using a pool then subscriptions must be enabled on the pool. Subscriptions are made using these APIs:
void apache::geode::client::PoolFactory::addLocator | ( | const char * | host, |
int | port | ||
) |
Adds a locator, given its host and port, to this factory.
The locator must be a server locator and will be used to discover other running bridge servers and locators.
host | is the host name or ip address that the locator is listening on. |
port | is the port that the locator is listening on. |
this
IllegalArgumentException | if the host is an unknown host according to java.net.InetAddress#getByName or if the port is outside the valid range of [1..65535] inclusive. |
IllegalStateException | if the locator has already been added to this factory. |
void apache::geode::client::PoolFactory::addServer | ( | const char * | host, |
int | port | ||
) |
Adds a server, given its host and port, to this factory.
The server must be a bridge server and this client will directly connect to the server without consulting a server locator.
host | is the host name or ip address that the server is listening on. |
port | is the port that the server is listening on. |
this
IllegalArgumentException | if the host is an unknown host according to java.net.InetAddress#getByName or if the port is outside the valid range of [1..65535] inclusive. |
IllegalStateException | if the server has already been added to this factory. |
PoolPtr apache::geode::client::PoolFactory::create | ( | const char * | name | ) |
Creates a new Pool for connecting a client to a set of Geode Cache Servers.
using this factory's settings for attributes.
name | is the name of the pool, used when connecting regions to it |
IllegalStateException | if a pool with name already exists |
IllegalStateException | if a locator or server has not been added. |
|
inherited |
Atomically increment reference count.
|
inlineinherited |
|
inherited |
Atomically decrement reference count, the SharedBase object is automatically deleted when its reference count goes to zero.
void apache::geode::client::PoolFactory::reset | ( | ) |
Resets the configuration of this factory to its defaults.
this
void apache::geode::client::PoolFactory::setFreeConnectionTimeout | ( | int | connectionTimeout | ) |
Sets the free connection timeout for this pool.
If the pool has a max connections setting, operations will block if all of the connections are in use. The free connection timeout specifies how long those operations will block waiting for a free connection before receiving an AllConnectionsInUseException. If max connections is not set this setting has no effect.
connectionTimeout | is the connection timeout in milliseconds |
this
IllegalArgumentException | if connectionTimeout is less than or equal to 0 . |
void apache::geode::client::PoolFactory::setIdleTimeout | ( | long | idleTimeout | ) |
Sets the amount of time a connection can be idle before expiring the connection.
If the pool size is greater than the minimum specified by PoolFactory#setMinConnections(int), connections which have been idle for longer than the idleTimeout will be closed.
idleTimeout | is the amount of time in milliseconds that an idle connection should live before expiring. -1 indicates that connections should never expire. |
this
IllegalArgumentException | if idleTimout is less than 0 . |
void apache::geode::client::PoolFactory::setLoadConditioningInterval | ( | int | loadConditioningInterval | ) |
Sets the load conditioning interval for this pool.
This interval controls how frequently the pool will check to see if a connection to a given server should be moved to a different server to improve the load balance.
A value of -1
disables load conditioning
loadConditioningInterval | is the connection lifetime in milliseconds |
this
IllegalArgumentException | if connectionLifetime is less than -1 . |
void apache::geode::client::PoolFactory::setMaxConnections | ( | int | maxConnections | ) |
Sets the max number of client to server connections that the pool will create.
If all of the connections are in use, an operation requiring a client to server connection will block until a connection is available.
maxConnections | is the maximum number of connections in the pool. -1 indicates that there is no maximum number of connections |
this
IllegalArgumentException | if maxConnections is less than minConnections . |
void apache::geode::client::PoolFactory::setMinConnections | ( | int | minConnections | ) |
Sets the minimum number of connections to keep available at all times.
When the pool is created, it will create this many connections. If 0
then connections will not be made until an actual operation is done that requires client-to-server communication.
minConnections | is the initial number of connections this pool will create. |
this
IllegalArgumentException | if minConnections is less than 0 . |
void apache::geode::client::PoolFactory::setMultiuserAuthentication | ( | bool | multiuserAuthentication | ) |
Sets whether Pool is in multi user secure mode.
If its in multiuser mode then app needs to get RegionService instance of Cache. Deafult value is false.
void apache::geode::client::PoolFactory::setPingInterval | ( | long | pingInterval | ) |
The frequency with which servers must be pinged to verify that they are still alive.
Each server will be sent a ping every pingInterval
if there has not been any other communication with the server.
These pings are used by the server to monitor the health of the client. Make sure that the pingInterval
is less than the maximum time between pings allowed by the bridge server.
pingInterval | is the amount of time in milliseconds between pings. |
this
IllegalArgumentException | if pingInterval is less than 0 . |
void apache::geode::client::PoolFactory::setPRSingleHopEnabled | ( | bool | enabled | ) |
By default setPRSingleHopEnabled is true
The client is aware of location of partitions on servers hosting Regions.
Using this information, the client routes the client cache operations directly to the server which is hosting the required partition for the cache operation. If setPRSingleHopEnabled is false the client can do an extra hop on servers to go to the required partition for that cache operation. The setPRSingleHopEnabled avoids extra hops only for following cache operations:
name | is boolean whether PR Single Hop optimization is enabled or not. |
this
void apache::geode::client::PoolFactory::setReadTimeout | ( | int | timeout | ) |
Sets the number of milliseconds to wait for a response from a server before timing out the operation and trying another server (if any are available).
timeout | is the number of milliseconds to wait for a response from a server |
this
IllegalArgumentException | if timeout is less than or equal to 0 . |
void apache::geode::client::PoolFactory::setRetryAttempts | ( | int | retryAttempts | ) |
Set the number of times to retry a request after timeout/exception.
retryAttempts | is the number of times to retry a request after timeout/exception. -1 indicates that a request should be tried against every available server before failing |
this
IllegalArgumentException | if idleTimout is less than 0 . |
void apache::geode::client::PoolFactory::setServerGroup | ( | const char * | group | ) |
Configures the group which contains all the servers that this pool connects to.
group | is the server group that this pool will connect to. If the value is null or "" then the pool connects to all servers. |
this
void apache::geode::client::PoolFactory::setSocketBufferSize | ( | int | bufferSize | ) |
Sets the socket buffer size for each connection made in this pool.
Large messages can be received and sent faster when this buffer is larger. Larger buffers also optimize the rate at which servers can send events for client subscriptions.
bufferSize | is the size of the socket buffers used for reading and writing on each connection in this pool. |
this
IllegalArgumentException | if bufferSize is less than or equal to 0 . |
void apache::geode::client::PoolFactory::setStatisticInterval | ( | int | statisticInterval | ) |
The frequency with which the client statistics must be sent to the server.
Doing this allows GFMon
to monitor clients.
A value of -1
disables the sending of client statistics to the server.
statisticInterval | is the amount of time in milliseconds between sends of client statistics to the server. |
this
IllegalArgumentException | if statisticInterval is less than -1 . |
void apache::geode::client::PoolFactory::setSubscriptionAckInterval | ( | int | ackInterval | ) |
Sets the is the interval in milliseconds to wait before sending acknowledgements to the bridge server for events received from the server subscriptions.
ackInterval | is the number of milliseconds to wait before sending event acknowledgements. |
this
IllegalArgumentException | if ackInterval is less than or equal to 0 . |
void apache::geode::client::PoolFactory::setSubscriptionEnabled | ( | bool | enabled | ) |
If set to true
then the created pool will have server-to-client subscriptions enabled.
If set to false
then all Subscription*
attributes are ignored at the time of creation.
this
void apache::geode::client::PoolFactory::setSubscriptionMessageTrackingTimeout | ( | int | messageTrackingTimeout | ) |
Sets the messageTrackingTimeout attribute which is the time-to-live period, in milliseconds, for subscription events the client has received from the server.
It is used to minimize duplicate events. Entries that have not been modified for this amount of time are expired from the list.
messageTrackingTimeout | is the number of milliseconds to set the timeout to. |
this
IllegalArgumentException | if messageTrackingTimeout is less than or equal to 0 . |
void apache::geode::client::PoolFactory::setSubscriptionRedundancy | ( | int | redundancy | ) |
Sets the redundancy level for this pools server-to-client subscriptions.
If 0
then no redundant copies are kept on the servers. Otherwise an effort is made to maintain the requested number of copies of the server-to-client subscriptions. At most, one copy per server is made up to the requested level.
redundancy | is the number of redundant servers for this client's subscriptions. |
this
IllegalArgumentException | if redundancyLevel is less than -1 . |
void apache::geode::client::PoolFactory::setThreadLocalConnections | ( | bool | threadLocalConnections | ) |
Sets the thread local connections policy for this pool.
If true
then any time a thread goes to use a connection from this pool it will check a thread local cache and see if it already has a connection in it. If so it will use it. If not it will get one from this pool and cache it in the thread local. This gets rid of thread contention for the connections but increases the number of connections the servers see.
If false
then connections are returned to the pool as soon as the operation being done with the connection completes. This allows connections to be shared amonst multiple threads keeping the number of connections down.
threadLocalConnections | if true then enable thread local connections. |
this
void apache::geode::client::PoolFactory::setUpdateLocatorListInterval | ( | long | updateLocatorListInterval | ) |
The frequency with which client updates the locator list.
To disable this set its value to 0.
updateLocatorListInterval | is the amount of time in milliseconds between checking locator list at locator. |
|
static |
The default amount of time, in milliseconds, which we will wait for a free connection if max connections is set and all of the connections are in use.
Current value: 10000
.
|
static |
The default amount of time in milliseconds, to wait for a connection to become idle.
Current value: 5000
.
|
static |
The default interval in which the pool will check to see if a connection to a given server should be moved to a different server to improve the load balance.
Current value: 300,000
(which is 5 minutes).
|
static |
The default maximum number of connections to be created.
Current value: -1
.
|
static |
The default number of connections to be created initially.
Current value: 1
.
|
static |
Whether client is in multi user secure mode.
Current value: "false"
.
|
static |
The default frequency, in milliseconds, to ping servers.
Current value: 10000
.
|
static |
The default value for whether to have single hop optimisations enabled.
Current value: true
.
|
static |
The default amount of time, in milliseconds, to wait for a response from a server.
Current value: 10000
.
|
static |
The default number of times to retry an operation after a timeout or exception.
Current value: -1
.
|
static |
The default server group.
Current value: ""
.
|
static |
The default size in bytes of the socket buffer on each connection established.
Current value: 32768
.
|
static |
The default frequency, in milliseconds, that client statistics are sent to the server.
Current value: -1
.
|
static |
The default amount of time, in milliseconds, to wait before sending an acknowledgement to the server about events received from the subscriptions.
Current value: 100
.
|
static |
The default value for whether connections should have affinity to the thread that last used them.
Current value: false
. The default value for whether to establish a server to client subscription.
Current value: false
.
|
static |
The default amount of time, in milliseconds, that messages sent from a server to a client will be tracked.
The tracking is done to minimize duplicate events.
Current value: 900000
.
|
static |
The default redundancy for servers holding subscriptions established by this client.
Current value: 0
.
|
static |
Whether thread local connection is enabled.
Current value: "false"
.
|
static |
The default frequency, in milliseconds, to update the locator list.
Current value: 10000
.