# Replicate acknowledged alarms from another gateway

**URL:** <https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365>\
**Category:** Ignition\
**Tags:** perspective, scripting\
**Created:** [August 5, 2025, 1:20am UTC](https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365 "2025-08-05T01:20:38Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![xubin](https://avatars.discourse-cdn.com/v4/letter/x/bcef8e/32.png) [@xubin](https://forum.inductiveautomation.com/u/xubin)\
**Post date:** [August 5, 2025, 1:20am UTC](https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365/1 "2025-08-05T01:20:38Z")

</div>

I want to acknowledge the alarms for both independent gateways. Assuming both gateways have the same set of users and tag sources, Gateway 2 will acknowledge the same set of alarms, including notes and user information, as acknowledged on Gateway 1. It seems we may need to use **system.alarm.queryStatus** along with **system.alarm.acknowledge** to implement this. Are there any examples available, or alternative suggestions?

---

<div class="post-metadata">

**Author:** ![Chris\_Bingham](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Chris\_Bingham](https://forum.inductiveautomation.com/u/Chris_Bingham)\
**Post date:** [August 5, 2025, 3:56am UTC](https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365/2 "2025-08-05T03:56:30Z")

</div>

Typically, Gateway2 is configured with a [Remote Tag Provider](https://www.docs.inductiveautomation.com/docs/8.1/platform/tags/tag-providers#remote-tag-provider) to provide access to tags of Gateway1, whereby all execution (tag writes, alarms, history, etc.) is handled by a single gateway.

If this arrangement doesnt work for you, can you describe your architecture in a bit more detail?

---

<div class="post-metadata">

**Author:** ![xubin](https://avatars.discourse-cdn.com/v4/letter/x/bcef8e/32.png) [@xubin](https://forum.inductiveautomation.com/u/xubin)\
**Post date:** [August 5, 2025, 9:03am UTC](https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365/3 "2025-08-05T09:03:58Z")

</div>

The following figure represents my intended architecture. A copy of the same project will reside on both redundant gateways, Gateway 1 and Gateway 2. Both Gateway 1 and Gateway 2 receive data from the same sensors. My goal is to auto-acknowledge alarms on one gateway when they are acknowledged on the other, regardless of whether it’s Gateway 1 or Gateway 2.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/b/dbfc6fc8d698678837edb71f3ec2a714147025af.jpeg)

---

<div class="post-metadata">

**Author:** ![bschroeder](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bschroeder/32/13260_2.png) [@bschroeder](https://forum.inductiveautomation.com/u/bschroeder)\
**Post date:** [August 5, 2025, 11:16am UTC](https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365/4 "2025-08-05T11:16:59Z")

</div>

So this isn't a typical architecture. At least not one I've seen a need for. Is there a specific reason that leads you to this architecture?

Typically, you would only have one redundant pair. Dual gateway pairs, as you have described, are typically implemented in a scale-out architecture.

You could use [system.util.sendMessage | Ignition User Manual](https://docs.inductiveautomation.com/docs/8.1/appendix/scripting-functions/system-util/system-util-sendMessage) to generate a message to another gateway, and then ingest that message and acknowledge alarms properly. However, you will need to be very careful to avoid a storm of messages ping-ponging between the gateways.

---

<div class="post-metadata">

**Author:** ![xubin](https://avatars.discourse-cdn.com/v4/letter/x/bcef8e/32.png) [@xubin](https://forum.inductiveautomation.com/u/xubin)\
**Post date:** [August 8, 2025, 2:56am UTC](https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365/5 "2025-08-08T02:56:39Z")

</div>

I would think to send the message to another gateway using Alarm Acknowledged from the Tag Scripting. And another Gateway Message Handlers to acknowledge the same sourcepath alarm. It may cause the looping between the gateways. Is there a way to prevent this loop 🤔?

---

<div class="post-metadata">

**Author:** ![David\_Stone](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/david_stone/32/79749_2.png) [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Post date:** [August 8, 2025, 11:46am UTC](https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365/6 "2025-08-08T11:46:20Z")

</div>

I am pretty sure you can set up an “ack” alarm pipeline on each tag, then use the pipeline script block to log the ack event to a database table. I would probably utilise a table that is shared by the two gateway sets , and when an ack is registered against a tag and alarm name, poll the db to propagate this to the other gateway. You could use update queries to indicate that an ack has been actioned by each gateway, but the table would be your source of truth.

---

<div class="post-metadata">

**Author:** ![Chris\_Bingham](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Chris\_Bingham](https://forum.inductiveautomation.com/u/Chris_Bingham)\
**Post date:** [August 8, 2025, 6:01pm UTC](https://forum.inductiveautomation.com/t/replicate-acknowledged-alarms-from-another-gateway/109365/7 "2025-08-08T18:01:40Z")

</div>

> [@David\_Stone](#):
>
> set up an “ack” alarm pipeline on each tag, then use the pipeline script block to log the ack event

👍

DB could be useful for other purposes. Might impose a bit of excess overhead during a flood of alarm events.

Another option: Within the message handler receiving a message from the other gateway, add a note with predefined text to each acknowledgement (`AlmHandler: Remotely Acknowledged By:...)`and filter on any notes beginning with the same prefix in the alarm pipeline?
