Configuring a .NET Front-End Server to Use Failover Alternate Back-End Servers
Coveo .NET Front-End 12.0.74+ (February 2013)
Example: Your Coveo implementation includes two Front-End servers, one Master server, and two
Mirror servers. You configure the
Front-End 1 server to use the
Mirror 1 server by default, but also to switch to the
Mirror 2 or
Master servers if the default server fails. Similarly, you configure the
Front-End 2 server to use the
Mirror 2 server by default but to switch to the
Mirror 1 and
Master as alternate servers.
The goal of the failover alternate server feature is to prevent showing Back-End server errors to end-users by redirecting their current action to the next responding server. When the default Back-End server stops responding, the currently active users experience a delay of a few seconds while the Front-End server confirms the server error and switches to the next available alternate server to resume the actions. The Front-End server monitors the non-responding Back-End server and transparently switches back to it when it starts responding.
Note: You cannot concurrently use the failover alternate server feature with network load-balancing (NLB) of Back-End servers. They are two exclusive server distribution management methods.
Failover alternate server ensures a continuous service without errors but does not evenly distribute the load.
NLB evenly distributes actions among multiple servers but generally does not trap exceptions so end-users can see Back-End server errors.
You can however use the failover alternate server feature with NLB configured to evenly distribute users among multiple Front-End servers (see Configuring Coveo Servers in a Network Load-Balancing Cluster).
To configure a .NET Front-End server to use failover alternate servers
Using a local administrator account, connect to the .NET Front-End server for which you want to configure failover alternate servers.
Note: On a new Front-End server, ensure to perform the first-time Front-End setup before attempting to configure and enable the failover alternate server feature (see Coveo .NET Front-End First Time Setup).
Locate the web.config file of the IIS Web application hosting the Coveo .NET search interfaces.
Note: When you chose to let the CES installer create the website, the default web.config file location is: [.Net_Front-End_Path]\Web\.
Using a text editor:
Open the web.config file.
Note: It is recommended to make a backup of the web.config file before editing it.
As shown in the following code sample, under the <coveoEnterpriseSearch> tag, add an <alternateServers> section with one <add/> tag per alternate server:
<coveoEnterpriseSearch> <server ... /> <alternateServers enableFailover="true"> <servers> <add id="" hostname="" port="" sslCertificatePath="" /> </servers> </alternateServers> </coveoEnterpriseSearch>
where the possible <alternateServers> tag attributes are:
enableFailover: Whether failover is enabled or not. The default value is false.
serversMonitoringDelayTimeSpan: The delay after which the Front-End server attempts to reconnect to unavailable Back-End servers. The default value is 5 seconds (00:00:05).
serversStopMonitoringTimeoutTimeSpan: The maximum amount of time to wait when stopping the server monitoring process. The default value is 5 seconds (00:00:05).
where the possible <add/> tag attributes are:
id: The ID of your choice that uniquely identifies this CES mirror from the others.
hostname: The hostname of the CES mirror computer.
port: The port used to connect to the CES service on the mirror computer. The default value is 52800.
sslCertificatePath: Optionally, the path to the SSL certificate used to connect to the CES mirror. When omitted, the sslCertificatePath of the main server is used.
Note: When more than one alternate server is configured, the Front-End server tries to use the first listed alternate server and relies on the second listed alternate server only when the first one is not responding, etc.
When your Coveo implementation includes more than one instance, to be able to see the Quick View for documents from remote indexes while failover alternate server is enabled, add the loadRemoteDocumentsFromMainServer="true" attribute to the <server> tag.
<coveoEnterpriseSearch> <server hostname="Mirror1" port="52800" loadRemoteDocumentsFromMainServer="true" /> ... </coveoEnterpriseSearch>
Save the file.
The changes take immediate effect for new actions.
Repeat this procedure for each Coveo Front-End Server.
Note: When Coveo is integrated like in SharePoint, modify the web.config file of each involved Web App on each SharePoint Front-End server.