Data Connection failover options are available for web data connections and database connections. When enabled, multiple endpoints can be configured so that when the primary connection is unavailable the connection will fail over to the next endpoint in the list.
When a possible failover event is detected (normally the result of an exception while trying to run a query), the endpoint test similar to the one run during Connection configuration in the UI is performed. If that test does not reply with a successful test before the specified timeout period (described below), then failover to a lower priority endpoint will occur.
Enabling Failover
On the first step of the connection wizard, set the “Enable Failover” property to “Yes“.
This alters the “Endpoints” step of the Connection Wizard. With Failover enabled, a list of endpoints will appear instead of a single set of connection properties.
Configuring Endpoints
The order in which endpoints appear in this list is the order that the connection will use. If the primary endpoint is unreachable, then the second endpoint will be tried, and then the third, and so forth. Endpoints in the list can be reordered and disabled. Disabled endpoints will be skipped when determining the failover order.
To disable an endpoint, set Enable to “No”.
To reorder endpoints, look for a grab bar on the left where the number of the endpoint is shown. Click on the grab bar to move the endpoint up or down in the list.
Controlling Failover Behavior
There are a pair of configuration settings that determine the timing of failover checks. Once the primary fails, lower priority endpoints are checked until a working one is found, then that one is set as the active endpoint. It will remain active until the endpoints are checked again. The connection checks vary by type. It might just log in to the DB, or do a ping check, or in some cases, assumes it can always try again. The failures are detected by the data failing to be retrieved for any errors but parsing issues on the server, so even if the connection thinks it can try again because it can ping a server, if the server fails to return valid data, it will fail again and try each endpoint in priority order until it gets to one that works.
pipeline.failover.failbackCheckInterval
(Default 60 seconds) Time in seconds between tests of all failed over endpoints to determine if failback to a higher priority endpoint should occur.
pipeline.failover.endpointTestTimeout
(Default 1000 milliseconds) Time in milliseconds to allow for test of endpoint to succeed before being considered down. If a server is slow to respond, this may need to be increased, but queries against an endpoint that is not responding (rather than responding immediately with an error like ‘destination not reachable’) will suffer latency while waiting to fail over.