The ServiceLevelprovides information to a Clientregarding the health of a Serverand its ability to provide data. See OPC 10000-5for a formal definition for ServiceLevel. The ServiceLevelis a byte with a range of 0 to 255, where the values fall into the sub-ranges defined in Table 109.

The algorithm used by a Serverto determine its ServiceLevelwithin each sub-range is Serverspecific. However, all Serversin a Redundant Server Setshall use the same algorithm to determine the ServiceLevel. AllServers, regardless of Redundant Server Setmembership, shall adhere to the sub-ranges defined in Table 109.

Table 109– ServiceLevel ranges

Sub-range

Name

Description

0-0

Maintenance

The Failed Serveris in maintenance sub-range. Therefore, new Clients shall not connect and currently connected Clientsshall disconnect. The Servershould expose a target time at which the Clients are able to reconnect. See EstimatedReturnTimedefined in OPC 10000-5for additional information.

A Serverthat has been set to Maintenanceis typically undergoing some maintenance or updates. The main goal for the Maintenance ServiceLevelis to ensure that Clients do not generate load on the Serverand allow time for the Serverto complete any actions that are required. This load includes even simple connections attempts or monitoring of the ServiceLevel. The EstimatedReturnTimeindicates when the Client should check to see if the Serveris available. If updates or patches are taking longer than expected the Client may discover that the EstimatedReturnTimehas been extended further into the future. If the Serverdoes not provide the EstimatedReturnTime,or if the time has lapsed, the Clientshould use a much longer interval between reconnects to a Serverin the Maintenancesub-range than its normal reconnect interval.

1-1

NoData

The Failed Serveris not operational. Therefore, a Client is not able to exchange any information with it. The Servermost likely has no data other than ServiceLevel, ServerStatusand diagnostic information available.

A Failed Server in this sub-range has no data available. Clients may connect to it to obtain ServiceLevel, ServerStatusand other diagnostic information. If the underlying system has failed, typically the ServerStatuswould indicate COMMUNICATION_FAULT_6. The Client may monitor this Serverfor a ServerStatusand ServiceLevelchange, which would indicate that normal communication could be resumed.

2-199

Degraded

The Serveris partially operational, but is experiencing problems such that portions of the AddressSpaceare out of service or unavailable. An example usage of this ServiceLevelsub-range would be if 3 of 10 devices connected to a Serverare unavailable.

Serversthat report a ServiceLevelin the Degradedsub-range are partially able to service Clientrequests. The degradation could be caused by loss of connection to underlying systems. Alternatively, it could be that the Serveris overloaded to the point that it is unable to reliably deliver data to Clients in a timely manner.

If Clientsare experiencing difficulties obtaining required data, they shall switch to another Serverif any Serversin the Healthyrange are available. If no Serversare available in the Healthyrange, then Clients may switch to a Serverwith a higher ServiceLevelor one that provides the required data. Some Clients may also be configured for higher priority data and may check all Degraded Servers, to see if any of the Serversare able to report as good quality the high priority data, but this functionality would be Client specific. In some cases a Clientmay connect to multiple Degraded Serversto maximize the available information.

200-255

Healthy

The Serveris fully operational. Therefore, a Client can obtain all information from this Server. The sub-range allows a Serverto provide information that can be used by Clientsto load balance. An example usage of this ServiceLevelsub-range would be to reflect the Server’sCPU load where data is delivered as expected.

Serversin the Healthy ServiceLevel sub-range are able to deliver information in a timely manner. This ServiceLevelmay change for internal Serverreason or it may be used for load balancing described in 6.6.2.4.3.

Clientshall connect to the Serverwith the highest ServiceLevel. Once connected, the ServiceLevelmay change, but a Clientshall not Failoverto a different Serveras long as the ServiceLevelof the Serveris accessible and in the Healthysub-range.