OPC Server Connection Redundancy Settings

I have a local instance of Ignition and Kepware running on my machine (Windows 10) and an instance of Kepware on another machine (Windows 10). I am able to create connections in Ignition to both KepServer instances and get good quality tags. I setup my local instance as the failover endpoint as follows:

When I stop the Kepware service on the remote machine it never fails over to my local.

I get two different errors on the status page:
1)UaException: status=Bad_ConfigurationError, message=no matching endpoints found
at com.inductiveautomation.xopc2.client.ClientManager.lambda$null$5(ClientManager.java:162)
at java.util.Optional.orElseThrow(Optional.java:290)
at com.inductiveautomation.xopc2.client.ClientManager.lambda$connect$9(ClientManager.java:161)
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
at org.eclipse.milo.opcua.stack.client.UaTcpStackClient.lambda$receiveResponse$14(UaTcpStackClient.java:343)
at org.eclipse.milo.opcua.stack.core.util.ExecutionQueue$PollAndExecute.run(ExecutionQueue.java:107)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
7.9.8 (b2018060714)
Oracle Corporation 1.8.0_161

and

2)UaException: status=Bad_ConnectionRejected, message=java.net.ConnectException: Connection refused: no further information: /192.168.10.164:49320
at org.eclipse.milo.opcua.stack.client.UaTcpStackClient.lambda$bootstrap$15(UaTcpStackClient.java:510)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:683)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:604)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:564)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:425)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:276)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:292)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:545)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused: no further information: /192.168.10.164:49320
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:224)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:289)
… 6 more
7.9.8 (b2018060714)
Oracle Corporation 1.8.0_161

192.168.10.164 is the remote machine.

I am not sure if I am setting this up properly or not. I would like for Ignition to switch OPC UA servers after 1 - 5 failed attempts at connecting to the remote.

Any help would be greatly appreciated!

It looks like the Kepserver instance on the remote machine isn’t accepting incoming traffic on the localhost adapter. Try either A: enabling that network interface in the kepware settings on the remote machine, or B: changing ‘localhost’ in the failover settings to the actual network IP of the remote machine.

I changed the localhost to the ip and I still get the same results.
I created the “Local” connection just to prove to myself that I could connect to my local Kepware instance. The “Remote” connection is the one with the Redundancy Settings and with the remote Kepware instance stopped I still get a faulted status even with local as the failover.

Also, I turned off the firewall on both machines just to rule that out.

Thanks

We changed the Redundancy Settings to include the Backup Endpoint URL and the failover started working as expected.