Are notifications 100% reliable?

Unified Architecture topics related to OPC UA Specification, compliant behavior and any technical issues of OPC UA, like Security, Information Model, Companion Specs DI, PLCopen, ADI, ...

Moderator: Support Team

Post Reply
Joerg
Jr. Member
Jr. Member
Posts: 1
Joined: 16 Nov 2017, 13:07

Are notifications 100% reliable?

Post by Joerg »

I am facing a problem where it seems, that every now and then, I do not get a notification when the value of a monitored item changes on the UA server.

My question is: Is the notification thing a reliable service or is it possible that notifications are missing sometimes? If missing notification can happen, is there a chance to handle this on the client side and recover from this?

User avatar
Support Team
Hero Member
Hero Member
Posts: 3064
Joined: 18 Mar 2011, 15:09

Re: Are notifications 100% reliable?

Post by Support Team »

Dear Joerg,

Notifications in OPC UA are reliable with some exceptions.

In a world of unlimited QueueSize in a MonitoredItem and a unlimited LifeTime of a Subscription, notifications would be 100% reliable from an OPC UA specification point of view.

In real world, QueueSize will be limited by a Server. If the case of an queue overflow, the discard policy of the MonitoredItem will control which value will be deleted (oldest one or newest one in the queue). The latest value will be always in the queue. The value after the deleted value(s) will have the queue overflow bit set in the StatusCode of the DataValue. For events, an EventQueueOverflowEventType will be queued. This information can be used on the client side to detect missed values.

In addition, Subscriptions can time out in the case of a connection error. In this case all notifications in the subscription are lost and a client must create a new subscription. If the connection is reestablished before the timeout, all queued notifications are delivered and the above overflow flags must be checked.

The Publish Response contains also a sequence number. In the case of a list response with notifications, the client can detect this with the missed sequence number and can request a resend with Republish. If this fails, it is strongly recommended to delete and recreate the subscription.
Best regards
Unified Automation Support Team

Post Reply