11 The notification server
11.1 The notification server program
The notification server system consists of the program "notifysrv". It is created in the "HELIOSDIR/sbin" directory during the installation. HELIOS Base is configured to start "notifysrv" automatically when the HELIOS services are started.
"notifysrv" is responsible for receiving and distributing events from multiple local client processes and tools, and forwarding these to the listening target processes which have been registered for different kinds of events. "notifysrv" is a lightweight service with excellent performance in delivering messages fast and reliably, without blocking the sender or receiver processes and without polling.
The "notifysrv" system handles internally used low level events including:
- Oplock break events used for file caching
- User message events sent to HELIOS Admin, AFP and SMB clients (see Send message in 7.1 "srvmsg")
- Auditing events to turn on tracing messages for processes
- Reconfigure events for the AFP and SMB servers via:
- Shutdown messages and grace time:
srvutil stop afpsrv -g seconds -m "message to users"
srvutil stop pcshare -g seconds -m "message to users"
- Internal file and directory event distribution (see "Notification features" in the HELIOS ImageServer manual) via:
- Status updates of internal configuration changes (for users/groups/volumes/printer and queues/logins, etc.)
"notifysrv" always needs to be active, otherwise the events will not be handled in the different processes. The server supports fail-safe operation in the case of major internal problems, and will automatically be restarted in case of failure. In this case all other process will automatically continue to work with the restarted "notifysrv" daemon.
The "notifysrv" application supports a telnet monitoring connection to list processes which are registered to receive events and to see how many events have been sent so far. The command
socket localhost 2017 connects to the monitoring port and allows observing the activity.
The following commands are supported:
status (show the current status)