Hi
We have an event server plugin that listens for new alarms.
newAlarmComFilter = msgCom.RegisterCommunicationFilter(NewAlarmMessageHandler, new CommunicationIdFilter(MessageId.Server.NewAlarmIndication));
After running for a week or two it stopped receiving alarms.
When an alarm is received, its status is updated using IAlarm Client. I don’t know if it’s related but there are two AlarmUpdateHandler errors in the event server log (see attachment).
The last alarm was received Saturday 1:07:11 and the last time its status was updated by the plugin was 1:09:46, same time as one of the AlarmUpdateHandler errors. After that, new alarms kept coming in to the smart client but the plugin was not notified of new alarms until the event server was restarted today.
I would like to start with some information:
Have you observed this issue more than once? Is it a frequently occurring issue? How frequent?
What product and version is the XProtect VMS?
What version is the MIP SDK you used building the Event Server plugin?
We would want the full set of logs as done by the Diagnostics tool. I do not find exchanging a lot of logs and other information on this public forum ideal. I took the liberty of creating a support case based on this forum thread. Please see the support case.
One think I had overlooked at first which is a general recommendation.
MessageCommunication can be used across processes and it work through establishing communication through the Event Server. If what you need is to subscribe to messages already present in the environment you can avoid the complications of external / out of process communication.
This means that you can replace RegisterCommunicationFilter with RegisterReceiver and have a much simpler in-process communication.
https://doc.developer.milestonesys.com/html/index.html?base=miphelp/class_video_o_s_1_1_platform_1_1_environment_manager.html&tree=tree_search.html?search=environmentmanager
An example: The ConfigDump sample in the Background plugin:
_msgRef2 = EnvironmentManager.Instance.RegisterReceiver(NewEventsHandler, new MessageIdFilter(VideoOS.Platform.Messaging.MessageId.Server.NewEventsIndication));
(you just need NewAlarmIndication instead).
https://doc.developer.milestonesys.com/html/index.html?base=samples/pluginsamples/configdump/readme.html&tree=tree_1.html
https://github.com/milestonesys