1 Introduction
This article describes a solution to make SAFR Windows background video feed processor service known as VIRGO more resilient.
After long periods of operation SAFR Virgo may stop processing. This may happen for various reasons, some out of control of the software and some possibly due to flaws such as memory leaks.
The Video Feeds window is designed to monitor the state of VIRGO and report is not operating properly as shown below.
Clicking the “Alarm Condition Info” will provide more details of the error condition.
This article describes strategies of monitoring or proactive measures that can ensure VIRGO avoids getting into an error state or alerts operators when an error state is encountered.
Measure such as this are not a replacement for software defect management. In all cases, end users and integrators should report defects with SAFR Video to SAFR support by opening a support ticket at support@safr.com in order to ensure future releases are free from defects and offer the highest possible resiliency.
2 Automated Error Alerts
First and foremost, monitoring should be enabled in order to alert administrators of error conditions occurring in the software. SAFR has a build in capability to notify administrators of error conditions as described below. This works by enabling one or more alarms conditions and defining an email address to send alerts to when those alarm conditions are met. The procedure below describes how to set up monitoring.
Before starting, a little terminology may be helpful:
- Processor – A device that hosts one or more feeds (i.e. Windows Server or SAFR SCAN Access Control device)
- Feed – A process that processes an input such as an RTSP camera input or file input.
2.1 Configuration Alarm Conditions Alerts
- Open Advanced Processor Configuration from the “…” menu at the Processor level as shown in menu below.
- Click the “+” on the monitoring row to add alarm conditions. (the “+” will only appear when cursor is over the row)
- Select one or more Alarm Conditions and click Add. All Alarm Conditions are shown below.
For being alerted of processor health issues, the most important properties are:
- alarm.condition.delinquent.enabled
- alarm.condition.lowDisk.enabled
- alarm.mail.enabled
- alarm.mail’recipients
You are free to add and set the corresponding “.message” and “.subject” properties but defaults for these may be sufficient.
Feed error condition may occur for transient errors such as intermittent network issues and in some cases may occur too frequently and be too transient to be of value.
You should end up with the following list of properties added to the monitoring section:
Edit any fields as desired and click “Apply”
2.2 Enable Email Server Relay
To send emails, SAFR Server must be configured with an email server. This section describes that process.
- Open SAFR System Configuration from Tools Menu
- Scroll to “Notification Services Configuration” and enable “Set up SMTP Email Service”
- See Set up SMTP Email Service for information on configuring an SMTP Email Service in SAFR.
2.3 Test Alarm Conditions
To verify the Alarm Condition will trigger and alert administrators of feed processor status take one of the following actions
- If processing 3rd party cameras with SAFR Software, stop the “SAFRVirgo” Windows Service.
- If using SAFR SCAN or SAFR Camera, unplug SAFR SCAN from the network
Await this condition until a notification arrives. It should take no more than 5 minutes.
If no email delivered, check that the processor is in error status in the Video Feeds window. If so, also check the logs in SAFR Application directory under ‘covi/logs/covi-ws.log’ for any recent errors.
3 Scheduled Auto Restart
A proactive approach to error conditions can be taken by scheduling a recurring restart for the background Windows video feed Service. This section describes one way in which this can be performed using Windows Task Scheduler.
3.1 Create the Task
- Open Windows Task Scheduler
-
Create a new Task and assign a name (e.g. SAFR Virgo Scheduled Restart)
-
Go to the Triggers Tab and click “New…” to add a new task and complete as shown below.
-
Go to the Actions Tab and click “New…” to add a new action and enter the following command
-
Create New again and create a 2nd command to start the service. Enter “NET” in the Program/script field and “START SAFRVirgo” in the arguments field.
-
Click OK. The final set of Actions should look like this:
- Click “OK” to save the Task
3.2 Test the newly created task as follows
- Open a DOS Command Prompt
- Enter the command “powershell” (Prompt should change to “PS” as shown below)
- Enter the following command:
Get-Service -DisplayName "SAFR Virgo" | ForEach-Object{Write-Host $_.Status : $_.Name}
- Click the task and select “Run”
- Quickly go back to the DOS Command Prompt and press up arrow and run the Get-Service status command again.
- Do this multiple times. Monitor that the service turns off and then on. You should see something like this:
Questions or comments about the documentation? Email us at safr-doc-feedback@realnetworks.com .
1