Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Adapter for OPC UA

Server-level failover

  • Last UpdatedSep 09, 2025
  • 5 minute read

The OPC UA adapter supports server failover, also known as non-transparent server redundancy.

To enable this feature, the ServerFailoverEnabled property in the adapter component's DataSource must be set to true. For more information on setting this property, see Configure data source.

Upon successful connection to the primary OPC UA Server that is defined in the Data Source configuration, the adapter will read 2 node ID's that hold server redundancy related information:

Node ID

How it's used

i=3709: Server redundancy mode support

This value will be used to determine the redundancy mode the adapter will follow. Currently, the supported modes are None, Cold, Warm, and Hot. The adapter will only read this property from the primary OPC UA Server that is defined in the Data Source configuration.

i=11314: Server URI array

This value will be used to determine all of the servers in the redundancy set. This should include the primary server as well as any additional backup servers. The adapter will only read this property from the primary OPC UA Server that is defined in the Data Source configuration. For failover to work successfully, the Server URI array must only be populated with the URL of the servers in the redundancy set. Some OPC UA servers use URNs instead of URLs, which is not currently supported by this adapter.

Note: The adapter does not currently support a runtime change to the server redundancy mode or server URI array. You must restart the adapter if you wish to change either the server redundancy mode or the server URI array.

Service Level and the maintenance sub-range

The OPC UA adapter uses the ServiceLevel ranges defined in the OPC UA specification in order to facilitate failover and to reduce load on a server that is in maintenance. If server failover is enabled, the OPC UA adapter reads a node ID that holds the server's Service Level.

When an OPC UA server's ServiceLevel indicates maintenance, the adapter disconnects and waits until the server's EstimatedReturnTime before trying to reconnect. If the server does not provide the adapter with an EstimatedReturnTime, then the adapter increases the ReconnectDelay by doubling the value configured in the client settings configuration.

Node ID

How it's used

i=2267: Service level

This value will be used to track each server's health and determine if a failover should occur. The adapter will subscribe to this value on every server in the redundancy set.

Supported Redundancy Modes

The following sections outline how the adapter behaves in each Server Redundancy Mode. For more information on server redundancy, see the OPC UA Online Reference part 4 - 6.6.2 (https://reference.opcfoundation.org/v104/Core/docs/Part4/6.6.2/).

None

If the Server Redundancy Mode Support value on the primary OPC UA server is None, the adapter will operate as if server failover is not enabled. The adapter will not attempt to connect or failover to any backup servers.

Cold

If the servers in the redundancy set are operating in Cold mode, the adapter will take the following steps upon startup:

  • Make a connection to each server defined in the primary OPC UA server's Server URI Array.

  • Read the Service Level of each server to determine which server is the healthiest.

  • Disconnect from all servers except for the healthiest.

The adapter will only maintain a connection with a single OPC UA server after its initial startup. The secondary servers will not be connected to unless a server failover occurs.

In Cold server failover, a failover only occurs if the adapter loses connection to the primary server or if the primary server's Service Level drops to 1 or 0. When this occurs, the adapter will connect to all secondary servers, read the service level of each, then disconnect from all servers except for the one with the highest service level. The adapter will maintain a connection with this new server until another failover event occurs.

Warm

If the servers in the redundancy set are operating in Warm mode, the adapter will take the following steps upon startup:

  • Make a connection to each server defined in the primary OPC UA server's Server URI Array.

  • Read the Service Level of each server to determine which server is the healthiest.

  • Activate publishing and sampling for the data subscription on the healthiest server.

  • Disable publishing and sampling for the data subscription on the rest of the servers.

The adapter will maintain a connection to every OPC UA server in the redundancy set. However, publishing and sampling will only be active on the healthiest server.

In Warm server failover, a failover occurs if the adapter loses connection to the primary server or if the primary server's Service Level drops below 200. When this occurs, the server is eligible for failover. Whenever any of the secondary servers have a higher service level than the current primary, a failover will occur. At this point, the adapter will disable publishing and sampling on the current primary server and enable them on whichever secondary server has the highest service level. This healthy server becomes the new primary.

Hot

If the servers in the redundancy set are operating in Hot mode, the adapter will take the following steps upon startup:

  • Make a connection to each server defined in the primary OPC UA server's Server URI Array.

  • Read the Service Level of each server to determine which server is the healthiest.

  • Activate publishing and reporting for the data subscription on the healthiest server.

  • Disable publishing and activate sampling for the data subscription on the rest of the servers.

The adapter will maintain a connection to every OPC UA server in the redundancy set. However, the secondary servers will have their data subscriptions set to Sampling only. This means the data from these servers will not be sent to the adapter. Instead, it will be held in the buffers that the server maintains for each monitored item until it becomes the primary server. The size of this buffer can be configured with the MonitoredItemQueueSize property in the Configure client settings configuration. Ensure that the buffer size is set to an appropriate amount so that data will not be lost during a server failover in Hot mode. This means that the buffer has to be large enough to hold all of the samples of data during a publishing interval, and that it is configured to have extra space to hold additional samples in the case of a failover event.

In Hot server failover, a failover occurs if the adapter loses connection to the primary server or if the primary server's Service Level drops below 200. When this occurs, the server is eligible for failover. Whenever any of the secondary servers have a higher service level than the current primary, a failover will occur. At this point, the adapter will disable publishing and activate sampling on the current primary server. It will then enable publishing and reporting on whichever secondary server has the highest service level. This healthy server becomes the new primary. If the MonitoredItemQueueSize property in the Client Settings configuration is large enough to hold all of the data that occurred during the failover period, there will be no data loss.

Redundancy Server Set Cache

On startup, when the adapter connects to the initial primary server and reads the Server URI array, it stores the results in a json file in the following directories:

  • Windows:

    %ProgramData%\osisoft\Adapters\OpcUa\Configuration\<ComponentId>_RedundantServerSet.json

  • Linux:

    /usr/share/osisoft/Adapters/OpcUa/Configuration/<ComponentId>_RedundantServerSet.json

On startup, if the adapter is unable to connect to the primary server defined in the Data Source configuration, it will attempt to connect to each server in the cached server redundancy set. If the adapter is able to connect to one of the cached servers, it will then read and use the redundancy set configured on that server. The current redundancy set configuration can be found by following the steps in the Retrieve redundant server set section.

TitleResults for “How to create a CRG?”Also Available in