11/21/2019
Test case : Subscription Client Basic : Err-011
Current test case suggest that client should reports an error that a previously acknowledged Sequence Number has been received. Client re-acknowledges it.
If previously acknowledged Sequence number is received, our client sends the republish request with the expected sequence number.
But during republish request we are not adding any acknowledgement for already acknowledged sequence number.
Is it mandatory to re-acknowledge it?
07/05/2017
If a client get the same sequence number a second time - it is required to report this as an error, since a sequence number is never to be reused. This repeated sequence is an error and the message that came with it shall be ignored. The client should not ask for a republish of an expected sequence number since, it might not have been sent. If you receive a sequence number that is higher, i.e. you missed a number then you can ask for a republish of the missed number. The acknowledge of a received number, even if already acknowledged is a good idea since the most common case where a sequence number is repeated is from a transparent redundant server that has failed over and missed some information in the failover process. i.e. that a message went out and the acknowledge for it might not have been received by the server.
03/31/2020
Actually client iterate over available sequence number, and when the response message contains previously acknowledge reused sequence numbers it ignores it and tries to retrieve the missed notification message by republishing the available sequence numbers sent by OPC Server. Client actually never republish the expected sequence number but only the available sequence number.
Moderators-Specifications
Moderators-Companion
Moderators-Implementation
Moderators-Certification
Moderators-COM
02/24/2014
Not sure about what pradeep is saying, every publish response received from a server has a sequence number, if a client receive two publish response with the same sequence number from the Server (and they did not ask for a republish), the client shall log it as an error (the Server is having a problem and the client is required to report this and ignore the message) - this functionality is described in the specification.
Each publish message response, beside the actual response, also includes a list of available sequence numbers that can be requested for a republish. If a client sees that it missed a sequence number and that the sequence number is in the republish list, it can request a republish for it. If it has not missed any sequence number, on the next publish that it send to the Server , it is required to list all of the available sequence numbers (from previous response messages) that it does not need (acknowledging them) - which then allows the server to clean up these publish responses.
Paul
Paul Hunkar - DSInteroperability
1 Guest(s)