Monitoring server status using SDK and Component Integration mode

Hello,

I need some clue about monitoring servers statuses in Federated Management Architecture, using SDK and Component Integration.

When login I suppose I connect to Federation Management Server, top of the stack. What happens if this one fails ? I have to connect to some fallback, I guess, as long as I have planned one.

However there is no issue because I know it is out-of-order, and recovery is another issue I have to adress.

My question here is : as I’m logged and no issue about that, how do I collect the statuses of all servers, meaning Management Servers, Event Server, SQL Server and the all bunch of servers on sites everywhere ?

Is there a code sample about that ? If not, what is the more efficient way to do this ? Do periodic calls to some GetThis and GetThat ?

Thanks a lot for your help

I think you should explore the Multi-Site Status Viewer sample, I think it fits. https://doc.developer.milestonesys.com/html/index.html?base=samples/componentsamples/multisitestatusviewer/readme.html&tree=tree_2.html

Thanks for your answer, but I still have some question here.

From what I see the sample is based on

  • VideoOS.Platform.Messaging.MessageCommunicationManager
  • VideoOS.Platform.Messaging.CommunicationIdFilter
  • NewEventIndication – ProvideCurrentStateResponse

But how can a server (Federation Management Server, Federated Management Server, Recording Server or SQL Server,…) declare itself as out-of-service in the Event Server since it is failed ?

And what if the failed server is the Event Server itself ?

Is there some kind of hypervisor service somewhere in the XProtect to handle this ?

BR

J.-J. Rodot

You are correct. If the event server fails you will get no answer and have no knowledge of whether recording server and cameras are running.

There are other methods that can replace the method out-lined using the sample.

For the Management Server service, which is not monitored by the StausViewer sample, you can use VideoOS.Platform.SDK.Util.ServerMonitor Class,

https://doc.developer.milestonesys.com/html/index.html?base=sdkhelp/class_video_o_s_1_1_platform_1_1_s_d_k_1_1_util_1_1_server_monitor.html&tree=tree_search.html?search=servermonitor

I have an old and small sample that is not part of the official samples.. https://download.milestonesys.com/MIPSDK/Samples/MSAlive.zip

There is the possibility to monitor the recording servers using the RecorderStatusService direct instead of the methods on the Event Server, and that would work if the Event Server is dead as it tries to communicate directly.