Event Time Monitoring

Based on event-driven architecture, VBVoice could be affected by excessive time spent in the application code attached to the events. A typical example is a database access routine that blocks for a long time waiting for results of a query. Such routine, if not designed properly, could delay processing on other channels, leading degradation of user experience.

The Event Time Monitoring feature is designed to help locate the "offending" application code that spends excessive time in VBVoice events. When turned on, VBVoice monitors the time it takes for any VBVoice event to execute. If time spent in any event is longer than the specified threshold, VBVoice logs an error message to VBVLog (or NLog), in addition to the Windows Event Viewer. With Event Viewer, you can pinpoint a questionable control event at a glance.

By default, Event Time Monitoring is turned off.

To turn on the monitoring, do the following steps.

  1. Use VBVConfig, set [System]EnableEventingTimer to 1.

  2. From VBVConfig, modify [System]EventingTimerThreshold to your desired threshold (default is 1 second).

  3. If reporting to Windows Event Viewer is required, modify [VBVLog]EventingTimerThresholdExceeded to match the level specified by [VBVLog]SysLogLevel.

After detecting an "threshold exceeded condition", VBVoice writes this message to VBVlog:

Error ch1 Dial1 spent 203 msec in 1133 event.

Or optionally, VBVoice writes this message to the Event Viewer as well:

Error level 3: [ID:EventingTimerThresholdExceeded] Error: ch 1 Delay1 spent 203 msec in 1133 event