Multiple Web Servers on a single CallScripter Database (Load Balance)

You can configure multiple CallScripter websites to run against a single database for use in a Web Load balance and redundant situations.
However there are manual steps required outside of the CallScripter installer.
The below instructions assume that your web servers are setup the same and can reach the common database in the same manner.

Below is a brief outline of the items to consider and undertake as part of this:

  1. Start with a standard CallScripter install on the primary/initial web server and database server
    This will deploy the first website and the database in the standard single web/sql server configuration. The installer will set certain settings on the local web sever and database each time it is run.

  2. Configure website
    The website will need some configuration changes made to the CallScripter web.config file. 
    Each of the below will need to be added as keys to the "appSettings" section of the web config under the "WriteErrorLog" entry.
    They are all items that exist in the database by default, but by setting them in each web config they take precedence over the database entries. This applies to any other setting stored in the database should it wished to be set on a per web server/website basis.
    The key syntax example for LicenceFile is:
    <add key="LicenceFile" value="yourLicenceFileName.csl"/> 

    Required Key Name Key Value Description
    Mandatory LicenceFile [LICENCE FILE NAME] Enter the full name of the licence file including the ".csl" file extension. No file path is required.
    Optional CallScripter_SubTitle [TEXT] If text is set it will be shown on the menu and agent desktop screens. Allows identifying of the CS system and/or webserver depending on where it is set (database/web config).
    You should then recycle the App Pool and Restart the IIS website and confirm they function as expected.
  3. Further Web Servers
    You can repeat the process of installing CallScripter through the installer on each web server and repeat the steps under "Configure Website" above.
    When running the installer enter the existing database name and use the same other setting as the initial web server.

  4. Configure database (once all web servers done)
    Now that you have multiple websites installed on different web servers for your database and each websites web config specifies its own local settings (ie: Licence File Name) it is advised to change the settings in the database to indicate this.
    For each setting that you have set in the web.config locate it in the Application Settings screen of the main application and enter in to the Setting Value box: "Set in Web Config".
    No website should use this value as you have set their local web config entries for these settings, but it will avoid confusion later on if someone updates the database setting through the CS Application Settings menu and no change happens.

  5. CS Services
    The CallScripter services are a special case in configuration in multi web server systems. Below are the main CallScripter services, some may not be available on your specific CS version or licence terms.
    Any services identified as "Once per CS System" should only have 1 active copy running on a single CallScripter database. Any services identified as "Each Website" will need to run on each website on each web server.
    However you can have the services identified as "Once per CS System" installed and configured on each website, you just need to manually start/stop them to ensure only 1 active copy.
    When in the Service Manager screen of the CallScripter application you will only see the services on that specific website.

    Required on Each Web Server Service Name Description
    Each Website Logging Service Logs any errors from the CS website to a text log on the local web server
    Once per CS system Messge Queue Polls the database and actions any required tasks at database level
    Once per CS System Report Scheduler Logs any errors from the CS website to a text log on the local web server
    Once per CS System Script Version Scheduler Changes which script version is set live in the database based upon a schedule stored in the database
    Once per CS System Avaya - Proactive Contact (5.1) EXDS Imports Avaya PDS data for cache to facilitate real time menu navigation
    Each Website CIC - Data Service (and V4) Accesses information from ININ CIC servers in real time to support agent desktop transfer functionality

  6. CS Plugins
    Each web server should have all desired CS Plugins deployed to them, as they only run for the users of their local website.