I have a client that creates monitored items and requests both SourceTimestamp and ServerTimestamp. I really only utilize the SourceTimestamp. Under normal conditions, everything works as expected.
However, there is a specific use case that I am trying to determine what the proper behavior should be. My client is connecting to a certain UA server. It starts monitoring a tag and receiving data notifications with the value and SourceTimestamp. Then the tag is removed from the UA server while still monitoring. Then the client receives a notification with a status of Bad_NodeIdUnknown as expected. The problem my client has is that the SourceTimestamp is null. Only the ServerTimestamp is filled out.
Is this the expected behavior from the UA server? Do I need to use the ServerTimestamp if the SourceTimestamp is null and the status is bad? Are there other cases where I might get a null SourceTimestamp and I need to use the ServerTimestamp with monitored items?
In the case of a bad or uncertain status sourceTimestamp is used to reflect the time that the source recognized the non-good status or the time the Server last tried to recover from the bad or uncertain status.