(9.1+) Core Monitor configuration

The Core Monitor site.config is located on each Core instance. It contains the following objects:

  • ha_monitor
  • vht_notification_client
  • vht_ha_qm
  • vht_console_app
  • erlang_app_controller
  • lager
  • license_manager
  • ds

The Core Monitor site.config file contains settings for High Availability connectivity, logging, and access to the Virtual Hold configuration database. When the Core Monitor's mode changes to primary or standalone, the tables in the database containing the active Queue Manager IP address are modified.

WHERE IS THE CORE MONITOR site.config FILE LOCATED?

Default location at C:\Program Files (x86)\Virtual Hold Technology\Core Monitor

Sample Core Monitor site.config

[{ha_monitor, [ {vht_logger_options,[{base_log_file_path,"C:/Program Files (x86)/VirtualHold Technology/VHLogs/Logs"}]}, {monitor_state_machine,[{remote_node,'vht_ha_monitor@HYPERION.companyname'}, {site_name,"VHT"}, {qm_ip_address,"10.30.0.106"}, {qm_host_name,"ELEKTRA"}, {db_server_name,"10.10.0.188"}, {config_db,"VHT_Config"}, {sql_script,"C:/Program File (x86)/Virtual Hold Technology/Core Monitor/bin/update_db_for_primary.sql"}, {sql_username,"user"}, {sql_password,"9plrZyo1jtUhHoVUUGpliA=="}, {start_qm_node_timeout_ms, 240000} ]}, {remote_node_monitor,['vht_ha_monitor@HYPERION.companyname']}, {qm_node_controller,[{node_prefix, vht_ha_qm}, {host_name,'ELEK.companyname'}, {start_args,"-setcookie vht_cookie -boot \"C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/releases/8.0.4/vht_ha_qm\""}, {max_restart_count,1}, {restart_period_seconds,420} ]} ]}, {vht_notification_client, [ {vht_logger_options,[{ base_log_file_path,"C:/Program Files (x86)/Virtual Hold Technology/VHLogs/Logs"}]}, {core_name,"ELEKCore"} ]}, {vht_ha_qm, [ {vht_logger_options,[{ base_log_file_path,"C:/Program Files (x86)/Virtual Hold Technology/VHLogs/Logs"}]}, {qm_app_controller,["C:/Program Files (x86)/Virtual Hold Technology/VHT_QueueManager_NIF_DLL"]} ]}, {vht_console_app, [ {vht_logger_options,[{ base_log_file_path,"C:/Program Files (x86)/Virtual Hold Technology/VHLogs/Logs"}]}, {application_options,[{max_restart_count,8}, {restart_period_seconds,120}]}, {application_list,[ [{name,report_writer},{exe,"C:/Program Files (x86)/Virtual Hold Technology/VHT_ReportWriter_Console.exe"},keep_alive], [{name,provider},{exe,"C:/Program Files (x86)/Virtual Hold Technology/VHT_Provider_Console.exe"},qm_controlled], [{name,op_mode_server},{exe,"C:/Program Files(x86)/Virtual Hold Technology/VHT_OperationModeServer_Console.exe"}] [{name, enterprise_monitoring}, {exe, "C:/Program Files (x86)/Virtual Hold Technology/EnterprisePulse/VHT_SNMP_Console.exe"}, qm_controlled], [{name, real_time_adapter},{exe, "C:/Program Files (x86)/Virtual Hold Technology/RealTimeAdapter/VHT_CicRealTimeAdapter_Console.exe"}, qm_controlled], [{name,interaction_service},{exe,"C:/Program Files (x86)/Virtual Hold Technology/Interaction Service/VHT_Interaction_Service.exe"}] ]} ]}, {erlang_app_controller, [ {application_options, [{max_restart_count, 8}, {restart_period_seconds, 120}]}, {application_list, [ [ {app_name, license_server}, {app_spec, {license_server_supervisor, {license_server_sup, start_link, []}, permanent, 1000, supervisor, [license_server_sup]}}, {system_management_notification, true}, {app_timeout_ms, 10000}, qm_controlled ] ]} ]}, {lager, [ {handlers,[ {lager_console_backend, info}, {lager_file_backend, [{file,"C:\\Program Files (x86)\\Virtual Hold Technology\\VHLogs\\Logs\\CoreMonitor\\debug.log"},{level,debug},{size,10485760},{date,"$D0"},{count,5}]}, {lager_file_backend, [{file,"C:\\Program Files (x86)\\Virtual Hold Technology\\VHLogs\\Logs\\CoreMonitor\\error.log"},{level,error},{size,10485760},{date,"$D0"},{count,5}]} ]} ]}, {license_manager, [ {web_port,8002} ]}, {ds, [ {vht_config,[ { driver, "{SQL Server}"}, { server, "VALEN"}, { uid, "sa"}, { pwd, "IoWfyOWxGkvCemmouRBy4Q=="}, { database, "VHT_Config"}, { multi_subnet_failover, "Yes"} ]}, {vht_rpt,[ { driver, "{SQL Server}"}, { server, "VALEN"}, { uid, "sa"}, { pwd, "IoWfyOWxGkvCemmouRBy4Q=="}, { database, "VHT_RPT"} { multi_submet_failover, "Yes"} ]} ]} ].

monitor_state_machine

The monitor_state_machine section contains settings for High Availability connectivity for this Core instance.Field descriptions:

FieldDefinition
site_nameThe Virtual Hold SiteName configured in the database
qm_ip_addressThe IP address of the server housing the Queue Manager associated with this Core Monitor
qm_host_nameThe host name of the server housing the Queue Manager associated with this Core Monitor
db_server_nameThe server name where the Virtual Hold database is installed
config_dbThe name of the Virtual Hold configuration database (Typically "VHT_Config")
sql_scriptThe path to the SQL script that is executed (Typically InstallDir ⇨ Core Monitor ⇨ bin ⇨ update_db_for_primary.sql)
sql_usernameUser name used to log into SQL Server *
sql_passwordEncrypted password used to log into SQL Server *

* To change the SQL credentials or add a new SQL user, refer to Changing Database Credentials for Core Instances and System Management.

If license_server is not starting within 10 seconds, increase the app_timeout_ms setting to a higher value.This sets the amount of time the erlang_app_controller waits for an application to start.

High Availability Failover Settings

You must edit the site.config file if you need to change the default settings that are used when a High Availability connection is lost and recovered. This includes the failover delay, remote node ping interval, and/or dual standalone resolution method. See High Availability Failover Recovery Best Practices and Configuring High Availability Failover Settings for details.

for example 60000.

High Availability Failover recovery best practices

In a High Availability environment, the Core Monitors use a failover delay, remote node ping interval, and dual standalone resolution method to maintain and recover their connectivity. This topic contains recommendations for setting these values. Refer to Configuring High Availability Failover Settings if you need to change these values in the site.config files for the Core Monitors.

Failover delay

When a loss of connectivity between HA Core Monitors is detected, a configurable Failover Delay controls how long a Core Monitor will wait for connectivity to be recovered before enacting an automatic failover to the Standalone role. If HA connectivity is recovered before the Failover Delay expires each Core Monitor continues to operate in its role prior to connectivity loss.

Behavior

HA Core Monitors run as a pair and monitor the other's network presence. HA Connectivity between Core Monitors is achieved when each has received a nodeup message from the other. A nodedown message is distributed when HA connectivity is lost and triggers a Failover Delay that controls how long to wait before enacting an automatic failover to Standalone operation.

  • Default Failover Delay period is 15000 milliseconds (15 seconds)
  • The failover_delay_ms setting can be added to the Core Monitor site.config files to change the default Failover Delay of 15000 milliseconds (15 seconds)
  • When modifying the default Failover Delay period, the failover_delay_ms setting and desired value must be added to both Core Monitor site.config files on each Core Instance. Inconsistent configuration could result in unreliable behavior and failover results.
  • When modifying the default Failover Delay period, the Failover Delay should be set to a value slightly greater than the expected network outage periods.
  • Setting the failover_delay_ms value to 0 (zero seconds) equates to pre 8.3 failover behavior. HA Core Monitors immediately enact the Standalone operational role when a nodedown event is received.

Remote node ping interval

HA Core Monitors ping one another at regular intervals to uphold communication and quickly detect a loss of HA connectivity. The Remote Node Ping Interval can be configured to increase or decrease the frequency at which a local HA Core Monitor will ping a remote HA Core Monitor and thereby increase or decrease the latency for detecting a loss of HA connectivity.

Behavior

HA Core Monitors run as a pair and monitor the other's network presence. HA connectivity between Core Monitors is achieved when each has received a nodeup message for the other. A Core Monitor will receive a nodedown message when HA connectivity with the other Core is lost. The Remote Node Ping Interval upholds regular communication between Core Monitors and reduces the latency between a cease of communication between HA Core Monitors and the distribution of a nodedown message.

  • Default Remote Node Ping Interval is 5000 milliseconds (5 seconds)
  • The remote_node_ping_interval_ms setting can be added to the Core Monitor site.config files to change the default Remote Node Ping Interval of 5000 milliseconds (5 seconds)
  • When modifying the default Remote Node Ping Interval the remote_node_ping_interval_ms setting and desired value must be added to both Core Monitor site.config files on each Core Instance. Inconsistent configuration could result in unreliable behavior and failover results.
  • The Remote Node Ping Interval will likely not need to be adjusted and should only be changed if Core Monitor pings are found to be causing unwanted network activity.
  • Given the Remote Node Ping Interval needs to be changed, it should not exceed 60000 milliseconds (60 seconds) or one third of the Failover Delay, whichever is shortest

Dual standalone resolution node

Given both Core Monitors are running in Standalone roles when HA connectivity is recovered, each will execute a Recovery Method that will resolve a dual standalone scenario by attempting to enact policy for a preferred Core Monitor to take on the Primary role. The Dual Standalone Resolution Node policies include:

  • Make the most recent Primary Core Monitor the Primary Core Monitor
  • Make the most recent Backup Core Monitor the Primary Core Monitor
  • Make this specified Core Monitor the Primary Core Monitor

Behavior

When executing the Recovery Method each Core Monitor will compare Recovery Data generated by the other Core Monitor when HA connectivity is recovered. This includes the Dual Standalone Resolution Node policy and the role of each Core Monitor when HA connectivity was lost. If both Core Monitors have matching configured polices and and their roles were consistent with a running HA pair at connectivity loss, the configured policy will be enacted. If the configured policies from both Core Monitors do not match, and their roles were consistent with a running HA pair at connectivity loss, then the most_recent_primary policy will be used by default in preference to either configured policy.

  • Default Dual Standalone Resolution Node policy is most_recent_primary
  • The dual_standalone_resolution_node setting can be added to the Core Monitor site.config files to change the default policy of most_recent_primary
  • When modifying the Dual Standalone Resolution Node policy the dual_standalone_resolution_node setting and desired policy must be added to both Core Monitor site.config files on each Core Instance. Inconsistent configuration could result in unreliable behavior and failover results.
  • Supported dual_standalone_resolution_nodevalues are:
    • most_recent_primary
    • most_recent_backup
    • 'vht_ha_monitor@<core monitor hostname>'

  • Present the default Dual Standalone Resolution Node policy behavior and configurable options to the client for consideration before installation.

Configuring High Availability failover settings

Modification of the Core Monitor site.config files is only required if the default behavior of the Failover Delay, Remote Node Ping Interval, and Dual Standalone Resolution Node policy need to be changed for adaptation to environmental conditions and user preferences.

When adding HA settings to Core Monitor site.config files, both Core Monitor site.config files must contain the same HA settings and values. Inconsistent configuration could result in unreliable behavior and failover results.

Perform these steps to configure the Failover Delay, Remote Node Ping Interval, and Dual Standalone Resolution Node settings for HA Core Monitors:

  • Locate the Virtual Hold Technology installation directory on each Core Instance server.
    • Select Start >> Run
    • Type regedit and press enter to open the Registry Editor
    • Browse to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Virtual Hold in the Registry Editor
    • Reference the InstallationLocation string value data in the Virtual Hold Key
    • Example: C:\Program Files (x86)\Virtual Hold Technology\
  • Browse to the installation location specified in the Virtual Hold Key and open the Core Monitor directory.
  • Using a text editor, open the site.config file.
  • Add the desired HA settings and values to the Core Monitor site.config file on each Core Instance using valid syntax.
  • Save the modifications made to both Core Monitor site.config files.
  • Restart the VHT Core Monitor services on both Core Instance servers.

failover_delay_ms

To change the default Failover Delay period of 15000 milliseconds (15 seconds):

  • Add the bold syntax to both Core Monitor site.config files, paying close attention to the use of a comma before the HA setting.
  • Save both Core Monitor site.config files.
  • Restart both VHT Core Monitor Services to activate the new setting and value.
{ha_monitor, [ { vht_logger_options, [{ base_log_file_path, "C:/Program Files (x86)/Virtual Hold Technology/VHLogs/Logs"}]}, { monitor_state_machine, [ { remote_node, 'vht_ha_monitor@batty.wanlab.local'}, { site_name, "VHT"}, { qm_ip_address, "10.42.0.18"}, { qm_hostname, "deckard"}, { db_server_name, "GAFF"}, { config_db, "VHT_Config"}, { sql_script, "C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/bin/update_db_for_primary.sql"}, { sql_username, "sa"}, { sql_password, "IoWfyOWxGkvCemmouRBy4Q=="}, { start_qm_node_timeout_ms, 240000} ]}, { remote_node_monitor, [ 'vht_ha_monitor@batty.wanlab.local']}, { qm_node_controller, [ {node_prefix, vht_ha_qm}, {host_name, 'deckard.wanlab.local'}, {start_args, "-setcookie vht_cookie -boot \"C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/releases/8.3.0/vht_ha_qm\""}, {max_restart_count, 1}, {restart_period_seconds, 420} ]}, { failover_delay_ms, 20000} ]}

remote_node_ping_interval_ms

To change the default Remote Node Ping Interval period of 5000 milliseconds (5 seconds):

  • Add the bold syntax to both Core Monitor site.config files, paying close attention to the use of a comma before the HA setting.
  • Save both Core Monitor site.config files.
  • Restart both VHT Core Monitor Services to activate the new setting and value.
{ha_monitor, [ { vht_logger_options, [{ base_log_file_path, "C:/Program Files (x86)/Virtual Hold Technology/VHLogs/Logs"}]}, { monitor_state_machine, [ { remote_node, 'vht_ha_monitor@batty.wanlab.local'}, { site_name, "VHT"}, { qm_ip_address, "10.42.0.18"}, { qm_hostname, "deckard"}, { db_server_name, "GAFF"}, { config_db, "VHT_Config"}, { sql_script, "C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/bin/update_db_for_primary.sql"}, { sql_username, "sa"}, { sql_password, "IoWfyOWxGkvCemmouRBy4Q=="}, { start_qm_node_timeout_ms, 240000} ]}, { remote_node_monitor, [ 'vht_ha_monitor@batty.wanlab.local']}, { qm_node_controller, [ {node_prefix, vht_ha_qm}, {host_name, 'deckard.wanlab.local'}, {start_args, "-setcookie vht_cookie -boot \"C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/releases/8.3.0/vht_ha_qm\""}, {max_restart_count, 1}, {restart_period_seconds, 420} ]}, { remote_node_ping_interval_ms, 6000} ]}

dual_standalone_resolution_node

To change the default Dual Standalone Resolution Node Policy of most_recent_primary:

  • Add the bold syntax to both Core Monitor site.config files, paying close attention to the use of a comma before the HA setting.
  • Save both Core Monitor site.config files.
  • Restart both VHT Core Monitor Services to activate the new setting and value.
{ha_monitor, [ { vht_logger_options, [{ base_log_file_path, "C:/Program Files (x86)/Virtual Hold Technology/VHLogs/Logs"}]}, { monitor_state_machine, [ { remote_node, 'vht_ha_monitor@batty.wanlab.local'}, { site_name, "VHT"}, { qm_ip_address, "10.42.0.18"}, { qm_hostname, "deckard"}, { db_server_name, "GAFF"}, { config_db, "VHT_Config"}, { sql_script, "C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/bin/update_db_for_primary.sql"}, { sql_username, "sa"}, { sql_password, "IoWfyOWxGkvCemmouRBy4Q=="}, { start_qm_node_timeout_ms, 240000} ]}, { remote_node_monitor, [ 'vht_ha_monitor@batty.wanlab.local']}, { qm_node_controller, [ {node_prefix, vht_ha_qm}, {host_name, 'deckard.wanlab.local'}, {start_args, "-setcookie vht_cookie -boot \"C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/releases/8.3.0/vht_ha_qm\""}, {max_restart_count, 1}, {restart_period_seconds, 420} ]}, { dual_standalone_resolution_node, most_recent_backup} ]}

Multiple HA settings

To change the default behavior of multiple HA settings:

  • Add the bold syntax to both Core Monitor site.config files, paying close attention to the use of commas.
  • Save both Core Monitor site.config files.
  • Restart both VHT Core Monitor Services to activate the new settings and values.
{ha_monitor, [ { vht_logger_options, [{ base_log_file_path, "C:/Program Files (x86)/Virtual Hold Technology/VHLogs/Logs"}]}, { monitor_state_machine, [ { remote_node, 'vht_ha_monitor@batty.wanlab.local'}, { site_name, "VHT"}, { qm_ip_address, "10.42.0.18"}, { qm_hostname, "deckard"}, { db_server_name, "GAFF"}, { config_db, "VHT_Config"}, { sql_script, "C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/bin/update_db_for_primary.sql"}, { sql_username, "sa"}, { sql_password, "IoWfyOWxGkvCemmouRBy4Q=="}, { start_qm_node_timeout_ms, 240000} ]}, { remote_node_monitor, [ 'vht_ha_monitor@batty.wanlab.local']}, { qm_node_controller, [ {node_prefix, vht_ha_qm}, {host_name, 'deckard.wanlab.local'}, {start_args, "-setcookie vht_cookie -boot \"C:/Program Files (x86)/Virtual Hold Technology/Core Monitor/releases/8.3.0/vht_ha_qm\""}, {max_restart_count, 1}, {restart_period_seconds, 420} ]}, { failover_delay_ms, 20000}, { remote_node_ping_interval_ms, 6000}, { dual_standalone_resolution_node, 'vht_ha_monitor@deckard.wanlab.local'} ]}

Changing database credentials

On occasion, you may need to change the credentials for SQL access. Afterwards, you must generate new generate encrypted username and password strings for use in the site.config files for each Management and Core instance.To change the credentials in the site.config files, first, perform these steps on each Management instance:
  • Click Start.
  • In the Search field, enter command prompt.
  • Right-click Command Prompt and select Run as administrator.
  • Type "C:\Program Files (x86)\Virtual Hold Technology\Management API\bin\management_api_node.cmd" update_database_credentials [user name] [password]and press Enter.
    • Replace [user name] and [password] with the new SQL user name and/or password.
  • Type "C:\Program Files (x86)\Virtual Hold Technology\ConfigurationManagement\bin\confmgmt.cmd" update_database_credentials [user name] [password]and press Enter.
    • Replace [user name] and [password] with the new SQL user name and/or password.
  • Restart the VHT Management API and VHT Configuration Management services.
Next, perform these steps on each Core instance:
  • Click Start.

  • In the Search field, enter command prompt.

  • Right-click Command Prompt and select Run as administrator.

  • Type "C:\Program Files (x86)\Virtual Hold Technology\Core Monitor\bin\vht_ha_monitor.cmd" update_database_credentials [user name] [password]and press Enter.
    • Replace [user name] and [password] with the new SQL user name and/or password.
  • Restart the VHT Core Monitor service.
The credentials will be changed and the password will be encrypted.Refer to Maintaining Core Monitor Services During Password Change to create a temporary database user to maintain the function of the Core Monitor while changing the password of an existing user. The Core Monitor uses the temporary user to access the database while you change credentials.To add a new database user, first add the new user on the database server. Then, follow all the steps above to change the database credentials to match the new user.

Maintaining Core Monitor services during password change

Create a temporary database user to maintain the function of the Core Monitor while changing the password of an existing user. The Core Monitor uses the temporary user to access the database while you change credentials.
  • Create a temporary user on the database server.
  • Perform these tasks on each Core Monitor Server:
    • Use the Update Database Credentials utility to change the credentials to match the temporary user.
    • Restart the VHT Core Monitor service.

After the changes are complete, use the Update Database Credentials utility to change the credentials back to the previous user. Restart the VHT Core Monitor service. You can delete the temporary user if needed.After all Core Monitors are updated, a manual failover may be required to establish the Primary Core Monitor.

Configuring Real-Time Adapters

If a Real-Time Adapter was not selected during the Core Role Configuration portion of installation, it can be manually post-installation. To add a Real-Time Adapter:

  • Edit the Real-Time Adapter registry key
  • Add the Real-Time Adapter to the Core Monitor site.config file.

Edit the Registry Key

Use the following instructions to edit the Real-Time Adapter registry key.

  • Navigate to SOFTWARE\Virtual Hold\Real Time Adapter.
  • Select the sub-key Type.
  • In the Value datafield, enter the value that corresponds to the Real-Time Adapter installed:
    • Genesys Stat Server
    • Avaya TServer
    • Avaya TSAPI
    • Interactive Intelligence CIC
  • Click OK.
  • Repeat Steps 1-4 on any additional Core servers.
  • Proceed to the following Update the Core Monitor site.config instructions to complete Real-Time Adapter configuration.

Update the Core Monitor site.config

After updating the Real-Time Adapter registry key, use the following instructions to edit the Core Monitor site.config file from the Core Monitor folder.

  • Locate the application_list section of the vht_console_app.
  • Add the following at the beginning of the application_list:
[{name, real_time_adapter}, {exe, "C:/Program Files (x86)/Virtual Hold Technology/RealTimeAdapter/CONSOLE_APP.EXE"}, qm_controlled],
  • Replace CONSOLE_APP.EXEwith the value that corresponds to the installed Real-Time Adapter:
    • For Genesys Stat Server and Avaya TServer - Add VHT_GenesysRealTimeAdapter_Console.exe
    • For Avaya TSAPI - Add VHT_TsapiRealTimeAdapter_Console.exe
    • For Interactive Intelligence (ININ) CIC - Add VHT_CicRealTimeAdapter_Console.exe

The following site.config sample has been updated for an ININ-CIC Real-Time Adapter:

{vht_console_app, [ {vht_logger_options,[{ base_log_file_path,"C:/Program Files (x86)/Virtual Hold Technology/VHLogs/Logs"}]}, {application_options,[{max_restart_count,8}, {restart_period_seconds,120}]}, {application_list,[ [{name, real_time_adapter},{exe, "C:/Program Files (x86)/Virtual Hold Technology/RealTimeAdapter/VHT_CicRealTimeAdapter_Console.exe"}, qm_controlled], [{name,report_writer},{exe,"C:/Program Files (x86)/Virtual Hold Technology/VHT_ReportWriter_Console.exe"},keep_alive], [{name,provider},{exe,"C:/Program Files (x86)/Virtual Hold Technology/VHT_Provider_Console.exe"},qm_controlled], [{name,op_mode_server},{exe,"C:/Program Files(x86)/Virtual Hold Technology/VHT_OperationModeServer_Console.exe"}] ]}
  • Save the site.config.
  • Repeat Steps 1-4 on any additional Core servers.
  • Restart Core Monitor for the changes to take effect.