(9.1+) Notification Server configuration
The Notification Server site.config file is located in the install directory of each Management Instance (default is C:\Program Files(x86)\Virtual Hold Technology\Notification Server). It contains the following objects:
- The kernel object is used for configuration in a High Availability environment.
- The notification_receiver object indicates the number of seconds to wait before displaying a "lost heartbeat" status for a component whose heartbeat cannot be detected.
The default_heartbeat_timeout_threshold_seconds variable is set during installation to 15 seconds. To alter this behavior, edit the Virtual Hold HeartbeatIntervalMS (heartbeat in milliseconds) registry setting AND this default_heartbeat_timeout_threshold_seconds variable until System Management displays the accurate state of the components. Refer to Configuring Heartbeats and Timeouts for more information.
- The lager object is used for logging.
- The web_monitor object is used for monitoring the status of Virtual Hold web services (such as the Platform ToolKit and VXML Interaction Server).
Sample Notification Server site.config file in a High Availability environment:
Sample Notification Server site.config file
This is a sample file. Depending on the application you are using, you may see additional settings.
The following sample is for a High Availability deployment.
[
{kernel, [
{distributed, [
{notification_receiver_impl,100,[{'notification_receiver_node@server1.domain.local','notification_receiver_node@server2.domain.local'}]}
]},
{sync_nodes_optional, ['notification_receiver_node@server2.domain.local']},
{sync_nodes_timeout, 500}
]},
{notification_receiver, [{version, 2}, {default_heartbeat_timeout_threshhold_seconds, 15}]},
{lager, [
{handlers, [
{lager_console_backend, info},
{lager_file_backend, [{file,"log/debug.log"},{level,debug},{size,10485760},{date,"$D0"},{count,5}]},
{lager_file_backend, [{file,"log/info.log"}, {level,info}, {size,10485760},{date,"$D0"},{count,5}]},
{lager_file_backend, [{file,"log/error.log"},{level,error},{size,10485760},{date,"$D0"},{count,5}]}
]}
]},
{web_monitor, [
{web_service_list, [
[ {display_name, <<"Platform Toolkit">>}, {url, "http://localhost/VHTPlatformWS-v4/VHTPlatformWS.asmx"},
{poll_period_seconds, 5}, {request_timeout_seconds, 1}, {max_missed, 3}] ] ]}
]
},
{web_external_list, [
% [ {display_name, <<"VIS">>}, {url, "http://<SERVERIP>:<SERVERPORT>/<VIS_APP>/PlatformSupport_TestHarness/Begin/?"},
% {poll_period_seconds, 60}, {request_timeout_seconds, 1}, {max_missed, 2}, {instance_name, "VIS"}, {server_name,"SERVERNAME"}]
]
}
]}
].
The kernel object is not present in Standalone environments.
The lager object specifies how the Notification Server log files are handled. It includes:
- Path to the locations where the log files are stored
- Level of logging output to each log file
- Maximum size of each log file
- Format for the date
- Number of files stored in each log location
The Notification System service must be stopped and restarted for changes to take effect.
Refer to Notification Server Logging for more information on logging.
Configuring the web monitor
The Web Monitor periodically polls the Platform ToolKit (and optionally VXML Interaction Server) in order to report its status in System Management along with the other system components.
The web_monitor object in the site.config file contains log file settings for the web monitor component. It also contains a list of the web services that will be monitored by System Management (Platform ToolKit and optionally VXML Interaction Server).
- The Virtual Hold installer will automatically install the web monitor on each Management instance and will create the entries for the vht_logger_options and web_service_list.
- If you want to monitor the VXML Interaction Server, you must manually add it in the web_external_list section. See Monitoring Additional Web Services, below.
Logging (vht_logger_options)
The vht_logger_options element contains the path to the web monitor log file. This element is automatically added for each Management instance by the Virtual Hold installer.
Setting | Definition |
---|---|
base_log_file_path | The path to the location where the web monitor log file is stored. |
Monitoring Local Web Services (web_service_list)
The web_service_list element contains settings for monitoring the Platform ToolKit. This data is automatically added by the Virtual Hold installer. It will include any copy of the Platform ToolKit which has been installed on this Management server.
Setting | Definition |
---|---|
display_name | The name of the service to be monitored, such as "Platform ToolKit". This component name will display in the System Management interface. |
url | The url of the service to be monitored. By default, this path will use http. If you need to use https instead, edit this path after installation. |
poll_period_seconds | The frequency (in seconds) that the web monitor will poll the service. The poll_period_seconds will automatically adjust to one second greater than the configured value if poll_period_seconds was configured as less than or equal to the request_timeout_seconds (below). |
request_timeout_seconds | The number of seconds the web monitor should wait for a response from the request of the URL before it is considered a failed request. This value will automatically adjust to one second if the configured value is less than one. |
max_missed | The maximum number of consecutive failed requests beyond which the web service is considered unresponsive and reported in the System Management interface as stopped. |
Monitoring Additional Web Services (web_external_list)
The web_external_list element contains the list of VXML Interaction Server (VIS) web services that will be monitored by System Management. These services are in addition to the ones configured in the web_service_list section, above.
The site.config file contains sample code in the web_external_list element which has been "commented out" with percent signs (%). You must manually edit this code to add each copy of VIS. Follow these steps:
- Within the display_name, url, instance_name, and server_name, replace the sample entries in ALL CAPS with the actual entries.
- Remove the percent signs from the beginning of the two lines.
To add a second web service for monitoring:
- Copy the two lines you edited above and paste them directly under the original two lines.
- Add a comma to the end of the original second line (after the square bracket).
- Edit the display_name, url, instance_name, and server_name as needed.
Continue entering additional external services as needed. Be sure to add a comma at the end of each addition except the last one, to keep the syntax correct.
For redundant monitoring in a High Availability solution, make this change to the site.config file on both management instances. Be sure the configuration is identical.
Following is a sample site.config with two external instances of VIS:
{ web_external_list, [
[ {display_name, <<"VIS_External_1">>}, {url, "http://<SERVERIP1>:<SERVERPORT>/<VIS_APP1>/PlatformSupport_TestHarness/Begin/?"},
{poll_period_seconds, 60}, {request_timeout_seconds, 1}, {max_missed, 2}, {instance_name, "VIS External 1"}, {server_name,"SERVERNAME1"}],
[ {display_name, <<"VIS_External_2">>}, {url, "http://<SERVERIP2>:<SERVERPORT>/<VIS_APP2>/PlatformSupport_TestHarness/Begin/?"},
{poll_period_seconds, 60}, {request_timeout_seconds, 1}, {max_missed, 2}, {instance_name, "VIS External 2"}, {server_name,"SERVERNAME2"}]
]
}
Setting | Definition |
---|---|
display_name | The name of the external service to be monitored, such as "VXML Interaction Server". This component name will display in the System Management interface. |
url | The url of the external service to be monitored. |
poll_period_seconds | The frequency (in seconds) that the web monitor will poll the external service. The poll_period_seconds will automatically adjust to one second greater than the configured value if poll_period_seconds was configured as less than or equal to the request_timeout_seconds (below). |
request_timeout_seconds | The number of seconds the web monitor should wait for a response from the request of the URL before it is considered a failed request. This value will automatically adjust to one second if the configured value is less than one. |
max_missed | The maximum number of consecutive failed requests beyond which the external service is considered unresponsive and reported in the System Management interface as stopped. |
instance_name, server_name | These entries are displayed in the System Management interface. They are used to label the container that contains the external service name, in the format: instance_name(server_name) |
Configuring Distributed Notification Servers
You have the ability to set up two distributed Notification Servers. This requires changes to the site.config file on each Notification Server.
Configuring Heartbeats and Timeouts
(Callback Version 8.6.3 or later) Sometimes the Notification Servers receive component heartbeat messages too frequently to be written to the Mnesia database across the WAN. In these cases. the unknown state (red question mark) is displayed for all components. To adjust heartbeat messages in Callback Version 8.6.3 and 8.6.4 integrations so that System Management displays the correct state for all components, the HeartbeatIntervalMS value must be created and configured and the default_heartbeat_timeout_threshold_seconds value must be adjusted. To adjust heartbeat messages in Callback Version 8.7.0 or later integrations, the HeartbeatIntervalMS and default_heartbeat_timeout_threshold_seconds values must be adjusted. Refer to the following discussions for details.
HeartbeatIntervalMS
This value is the desired time, in milliseconds, between heartbeats (the heartbeat rate). To set this value:
- Ping from one Management Instance server to another and record the round trip time.
- Use the System Management interface to determine the total number of components in the system and record the number. The components that count toward this total are:Core Instance CTI Connector (Avaya, Genesys, Cisco) Queue Manager OpMode Server Provider Report Writer Realtime Adapter (Avaya TSAPI, Avaya TServer, CIC, Genesys Stat Server) Readerboard AdapterManagement Instance Configuration Platform Toolkit Web Monitor (connected to VIS or other application) Message Bus Queuewatch Client Outbound IVR GlobalCall IVR Outbound Contact ClientPeripheral Instance Outbound IVR GlobalCall IVR Outbound Contact Client
- Insert the ping_time (from Step 1) and component_total (from Step 2) values into the following formula and calculate the HeartbeatIntervalMS value. Record this value.
component_total * 4) + 5] * 1000 = HeartbeatIntervalMS
- On all servers in the system, create (if necessary) and configure the Virtual Hold registry setting HeartbeatIntervalMS to the number calculated in Step 3. The default value is 5000 ms.
default_heartbeat_timeout_threshold_seconds
This value is the maximum time period in which the next heartbeat is expected. Failure to receive a heartbeat within this time period is interpreted as failure of the component and the appropriate actions are taken. To set this value:
- Insert the HeartbeatIntervalMS value from Step 3 (of HeartbeatIntervalMS) into the following formula and calculate the default_heartbeat_timeout_threshold_seconds value. Record this value.
HeartbeatIntervalMS/1000) * 3 = default_heartbeat_timeout_threshold_seconds
- On all servers containing Management Instances, configure the Virtual Hold variable default_heartbeat_tiimeout_threshold_seconds (located in the ...\Virtual Hold Technology\Notification Server directory) to the value calculated in the previous step. The default value is 45 seconds.