CM_TIME_BASED_AUTO_RECONNECT_ALGORITHM (Compact 2013)
3/26/2014
This enumeration lists algorithm options for reconnection behavior when CMCB_ALWAYS_CONNECTED connections are lost.
Syntax
typedef enum CM_TIME_BASED_AUTO_RECONNECT_ALGORITHM
{
CMTR_DEFAULT,
CMTR_NONE,
CMTR_LINEAR,
CMTR_EXPONENTIAL_RANDOMIZED_BACKOFF,
CMTR_LAST
} CM_TIME_BASED_AUTO_RECONNECT_ALGORITHM;
Element Definitions
- CMTR_DEFAULT
The default retry supported inbox.
CMTR_NONE
No retries based on time will be attempted. This is the recommended default.Reconnection attempts are caused only by retry notifications based on system events. For example, a CMRR_CONNECTION_AVAILABLE_TO_CONNECT notification occurs. See Connection Manager Status and Notification Reference.
CMTR_LINEAR
Reconnection is attempted based on CM_CONNECTION_CONFIG structure values using a three-stage algorithm:- Attempts reconnections are attempted every DelaySec seconds.
- After Attempts reconnection attempts, an unlimited number of reconnection attempts are made every AttemptsExceededDelaySec seconds.
- If AttemptsExceededDelaySec == INFINITE then no time-driven attempts are made beyond the number in Attempts.
In pseudo-code this is:
for ( int i = 1; i < Attempts; i++ ){ // wait DelaySec // reconnection attempt } if ( AttemptsExceededDelaySec != INFINITE ) for ( int i = 1; i < Attempts; i++ ){ // wait AttemptsExceededDelaySec // reconnection attempt }
CMTR_EXPONENTIAL_RANDOMIZED_BACKOFF
Reconnection is attempted every 2^i * DelaySec, with i = 1, 2, …, Attempts, with i increasing after each successive failed attempt, resetting to 1 when connection is connected.AttemptsExceededDelaySec behaves as specified in CMTR_LINEAR, above.
In pseudo-code this is:
for ( int i = 1; i < Attempts; i++ ){ // wait ( pow(2,i) * DelaySec ) // reconnection attempt } if ( AttemptsExceededDelaySec != INFINITE ) for ( int i = 1; i < Attempts; i++ ){ // wait AttemptsExceededDelaySec // reconnection attempt }
- CMTR_LAST
The last value.
Requirements
Header |
cmnet.h |
See Also
Reference
Connection Manager Connection Configuration Enumerations
CM_CONNECTION_CONFIG
Connection Manager Status and Notification Reference