Federated System Alarms

To receive alarms from all servers i have to have a different subscription for each one.

Is it supposed to be right?

Because I thought with a federation just the father would send all the alarms.

Good afternoon,

If I understand you correctly, you want to receive all alarms in a Milestone Fedarated Arquitecture setup. The parent is the only one that should have access to them.

Correct.

Actually to get all the alarms i have a subscription on each server, father and sons.

I would like to know if there is a way to proper configure or subscribe to get all the alarms just through the father becasue is there a possibility we can’t access some child server in the federation.

Thank you for your help,

Gianluca

Hello Gianluca,

I am not sure I understand your needs. What are you trying to do?

From my understanding you want that the alarms are configured in the parent and then they appear in the child site. Is this correct?

BR

Carlos

Hi Carlos,

no sorry, i try to explain myself better.

I have a father server with 2 federated children server, and one of them has different recorders.

Every server has each own configuration.

Let’s call them

father: A

child1: => B

child2: => C

for example

C triggers an alarm

I am just subscribed via code to A alarms => i don’t receive anithing

I would like to know if there is a way that allows me to receive C alarms hust listening to A alarms.

Checking Milestone clients i noticed also a difference.

The app client of A receive C triggered alarm.

The web client don’t.

The following snippet is how I am currently subscribed to alarms

var server = userContext.Configuration.ServerFQID.ServerId;

    MessageCommunicationManager.Start(server);

    messageCommunication = MessageCommunicationManager.Get(server);

    if (messageCommunication == null)

      return;

    if (newAlarmChannel == null)

      newAlarmChannel = messageCommunication.RegisterCommunicationFilter(NewAlarmMessageHandler,

       new CommunicationIdFilter(MessageId.Server.NewAlarmIndication), null, EndPointType.Server);

    if (updateAlarmChannel == null)

      updateAlarmChannel = messageCommunication.RegisterCommunicationFilter(ChangedAlarmMessageHandler,

        new CommunicationIdFilter(MessageId.Server.ChangedAlarmIndication), null, EndPointType.Server);

I recommend that you explore the Multi-Site Status Viewer sample.

As you said: To receive alarms from all servers i have to have a different subscription for each one. The sample shows exactly how to achieve this, the sample subscribes to events where you want alarms, I think you will find that you can use portions of the sample with what you already have.

https://doc.developer.milestonesys.com/html/index.html?base=samples/componentsamples/multisitestatusviewer/readme.html&tree=tree_2.html

https://github.com/milestonesys

Yeah I understood that so i did that in my code.

My question is about some systems where children servers are not reachable or visible or we can’t have direct access.

Good afternoon Gianluca,

It is hard to understand what you mean by “not reachable or visible or we can’t have direct access”. To me it means somehow you cannot connect to it.

If you cannot reach the server then the information from the server is not available.

Are you saying that even if the communication is not available your messageCommunication is not null? There is an additional check in messageCommunication to check if it is connected.

 if (messageCommunication == null || messageCommunication.IsConnected)
          return;

I hope this answers your questions, if not I would need more details.

I have to integrate my software in a system where the customer doesn’t want to give the child server credentials

I think we must disappoint. The way that it works, both in Smart Client and in the MIP SDK, is that a connection is made to each involved Event Server.

If there is no connection to the Event Server in a site, parent site or child site does not matter, you will not receive any alarm from that site.

There is no mechanism in Milestone Federated Architecture (MFA) that will route alarms through the parent server somehow. Instead the mechanism is all about getting information about child site in order to be able to login and access data direct.

Let me mention that the same goes for video data, if you have a MFA you can login and see video from the child site, but this relies on being able to connect and communicate with the child site.