# Ignition Server OPC UA Redundancy

**URL:** <https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [February 27, 2023, 3:35pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366 "2023-02-27T15:35:20Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Noah\_Shoap](https://avatars.discourse-cdn.com/v4/letter/n/ecc23a/32.png) [@Noah\_Shoap](https://forum.inductiveautomation.com/u/Noah_Shoap)\
**Post date:** [February 27, 2023, 3:35pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/1 "2023-02-27T15:35:20Z")

</div>

Hey all,

I was looking through [the docs](https://docs.inductiveautomation.com/display/DOC81/Ignition's+OPC+UA+Server) for Ignition 8.1 and it seems that OPC UA Server Redundancy is now supported but I've had no luck getting it working so far. The specific issue I'm running into is the client doesn't like the URN returned by the server in the redundant server set array; it's expecting a normal opc.tpc endpoint, but instead Ignition returns the server URN.

I'm imagining I'm doing something wrong, so I'm going to take a look through the docs again -- but wanted to check here and ask if anyone has had any success getting server redundancy set up and using third party OPC UA clients.

Thanks.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 27, 2023, 3:51pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/2 "2023-02-27T15:51:38Z")

</div>

So, just to be clear, all that really changed is that the server publishes that it only supports non-transparent redundancy, and now sets the ServiceLevel and ServerUriArray values as appropriate.

> [@Noah\_Shoap](#):
>
> The specific issue I'm running into is the client doesn't like the URN returned by the server in the redundant server set array; it's expecting a normal opc.tpc endpoint, but instead Ignition returns the server URN.

This client is broken. The redundant server set is a set of URIs, not endpoint URLs. It's the responsibility of the client to be able to map these to endpoint URLs. Servers are identified by a URI in the discovery services, so a client can either be configured with the mapping ahead of time or figure it out using discovery services.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 27, 2023, 3:57pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/3 "2023-02-27T15:57:03Z")

</div>

In theory, OPC UA redundancy works best when using a centralized discovery server of some kind, but this practice hasn't really taken off quite yet. There are commercial GDS (Global Discovery Server) products starting to hit the market now so hopefully we see this become more common. If all servers support registration and there's a central discovery server, the Server URI lookup becomes a lot easier.

---

<div class="post-metadata">

**Author:** ![Joe\_Bonhage](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/joe_bonhage/32/45543_2.png) [@Joe\_Bonhage](https://forum.inductiveautomation.com/u/Joe_Bonhage)\
**Post date:** [December 12, 2023, 5:12pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/4 "2023-12-12T17:12:44Z")

</div>

does Ignition provide the ability of providing an 3rd URL endpoint to which external OPC-UA client can connect so it would be transparent to the external client of what redundancy Ignition server it is connecting?

I'm confused regarding the 8.1.10 update which gives support to non-transparent redundancy. It gives redundancy at the URI level but not the endpoint URL?

[OPCUA Redundancy](https://docs.inductiveautomation.com/display/DOC81/Ignition%27s+OPC+UA+Server#Ignition'sOPCUAServer-OPCUAClientRedundancy)

Thank you.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 12, 2023, 5:18pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/5 "2023-12-12T17:18:13Z")

</div>

No it doesn't. You would need some kind of redundancy "proxy" or "broker" product to achieve transparent redundancy; I'm not sure anything like that exists right now.

---

<div class="post-metadata">

**Author:** ![Joe\_Bonhage](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/joe_bonhage/32/45543_2.png) [@Joe\_Bonhage](https://forum.inductiveautomation.com/u/Joe_Bonhage)\
**Post date:** [December 12, 2023, 5:24pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/6 "2023-12-12T17:24:05Z")

</div>

That's what I thought. Currently we have our OPC-UA client (windows service) set up with failover using windows built-in failover management. (2 different servers each running the service)  
I might look at setting up a gateway script which will call out to the failover cluster to switch when Ignition switches. Devil may be in the details but will give that a try.

---

<div class="post-metadata">

**Author:** ![RohanPalshikar](https://avatars.discourse-cdn.com/v4/letter/r/7ba0ec/32.png) [@RohanPalshikar](https://forum.inductiveautomation.com/u/RohanPalshikar)\
**Post date:** [December 12, 2023, 5:26pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/7 "2023-12-12T17:26:05Z")

</div>

How would the Ignition redundancy pair config support this. We have used that configuration for the failover currently.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 12, 2023, 5:26pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/8 "2023-12-12T17:26:57Z")

</div>

Sorry I'm not sure what you're asking.

---

<div class="post-metadata">

**Author:** ![RohanPalshikar](https://avatars.discourse-cdn.com/v4/letter/r/7ba0ec/32.png) [@RohanPalshikar](https://forum.inductiveautomation.com/u/RohanPalshikar)\
**Post date:** [December 12, 2023, 5:30pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/9 "2023-12-12T17:30:41Z")

</div>

Ok Let me elaborate - We have 2 Ignition gateways Primary and Sec, which we are also wanting use as OPC-UA servers for external clients. Now we are trying to configure the failover, by using ignition inbuilt Redundant Pair config. But what we observe is, for the client because we configure the Primary server URL as endpoint, soft-failover works (tested with Force Failover feature) , but a hard failover does not (like a server restart)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [December 12, 2023, 5:46pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/10 "2023-12-12T17:46:22Z")

</div>

Your clients are entirely responsible for the failover. They need to monitor for the server going down, or the ServiceLevel variable if both are online.

This is what non-transparent redundancy means - the client must be aware and take action.

---

<div class="post-metadata">

**Author:** ![drewdin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/drewdin/32/3363_2.png) [@drewdin](https://forum.inductiveautomation.com/u/drewdin)\
**Post date:** [April 21, 2025, 2:52pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/11 "2025-04-21T14:52:29Z")

</div>

Just to verify, this is still true when exposing ignition opc-ua to third party software? I thought there was a listener for the redundant pair? Thanks

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [April 21, 2025, 3:23pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/12 "2025-04-21T15:23:13Z")

</div>

Still true, will probably always be true.

OPC UA _Transparent_ redundancy isn't on the roadmap.

OPC UA _Non-transparent_ redundancy is kind of supported in 8.1. We the ServiceLevel Variable appropriately, but the handling of server URIs is broken, so whether a Client can actually use this information to failover or not depends on the Client implementation.

---

<div class="post-metadata">

**Author:** ![drewdin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/drewdin/32/3363_2.png) [@drewdin](https://forum.inductiveautomation.com/u/drewdin)\
**Post date:** [April 21, 2025, 3:33pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/13 "2025-04-21T15:33:50Z")

</div>

Thanks Kevin, Do you have any recommendations on a proxy service manager if its broken?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [April 21, 2025, 3:50pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/14 "2025-04-21T15:50:44Z")

</div>

No I'm still not sure if any product like that exists for OPC UA.

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [April 21, 2025, 3:52pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/15 "2025-04-21T15:52:54Z")

</div>

what's the specific use case here?  
Might have some suggestions

---

<div class="post-metadata">

**Author:** ![drewdin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/drewdin/32/3363_2.png) [@drewdin](https://forum.inductiveautomation.com/u/drewdin)\
**Post date:** [April 21, 2025, 5:05pm UTC](https://forum.inductiveautomation.com/t/ignition-server-opc-ua-redundancy/70366/16 "2025-04-21T17:05:55Z")

</div>

MES is reading ignition opc-ua server, our servers are redundant. we just want to make sure that if the master goes down and the backup starts. MES can still read the opc-ua server.
