View Issue Details

IDProjectCategoryView StatusLast Update
000789410000-004: ServicesSpecpublic2023-03-22 16:26
ReporterThilo Bellinger Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Product Version1.05.00 
Fixed in Version1.05.03 RC1 
Summary0007894: More clarifications for ResendData
Description

The description for the behavior of the ResendData method is not completely clear so a programmer must guess how to implement this.

Contents:
The description indicates that exactly one data change is sent per reporting MonitoredItem, even if more data changes are enqueued.
This detail is a bit hidden in "If a value is queued for a data MonitoredItem, the next value in the queue is sent in the Publish response. If no value is queued for a data MonitoredItem, the last value sent is repeated in the Publish response.".
I recommend to make this more clear by a separate sentence in front of the two other sentences.

answer --->> After ResendData only a single value is published, the purpose is to sync the cache on a client .
The value to publish is determined at the time of the PublishResponse. The ResendData acts as a flag for the next Publish response.
The purpose of ResendData is to resync a client cache. Thats why only a single value is sent after the first publish response after a ResendData for all monitored items.

Does the ResendData-PublishResponse affect the content of the following normal PublishResponse?
I assume not.

answer ---> yes, it affects it because it takes the next value, that value will not be sent in the following PublishResponse

In example when the ResendData-PublishResponse sends a queued notification, does the following normal PublishResponse send the same data change again? I assume "yes".

answer --> No, data is not sent again. No duplicates are sent except where only the last value is available

Does the ResendData-PublishResponse increase the sequence number?

answer --> sequence number is normally incremented

If yes, is this ResendData-PublishResponse usable for republishing?

answer --> yes

Republishing may not make sense as the PublishResponse contains duplicate data.

answer --> false assumption, does not contain duplicate data. Only duplicates that have no new value

How does a client distinguish a ResendData-PublishResponse from a normal PublishResponse?

answer --> no need to distinguish, it couldn't say

Maybe via the not increasing sequence number (like a KeepAlive with data), maybe the client must find this out by comparing the duplicate notifications.
Note: Hopefully the client knows which the previous sequence number was, since ResendData is meant for situations where the client missed some notifications.

answer --> false assumption

Timing:
Is the ResendData-PublishResponse intended to be sent as soon as possible or during the next publishing interval or is this server implementation specific?

answer --> at the next publishing interval

It is only specified that this shall be the next publish.
I assume "as soon as possible" as waiting may be problematic on long publishing intervals.

answer --> false assumption

Does the ResendData-PublishResponse affect the timing of the publishing interval?

answer --> NO -- Transfer sends response immediately

I assume ResendData is meant to be completely independent of the normal publishing cycle (it may only delay the normal publishing due to the extra sending operation or when consuming the last PublishRequest).

answer: -> false assumption, internally only a flag is set

Please write those clarifications into the specification.

TagsNo tags attached.
Commit Version
Fix Due Date

Activities

Martin Regen

2022-06-13 08:33

developer   ~0016819

Last edited: 2022-06-21 14:09

Adding to the list of questions, please clarify also why the where the Monitoring Mode is set to Reporting. Imho it should also resend last values for sampled items.
--> answered, sampling does not report in publish

Jim Luth

2022-06-21 14:02

administrator   ~0016949

Martin will add the results of the discussion and recommendations captured at the Munich F2F for Part 4 clarifications.

Martin Regen

2022-06-21 14:26

developer   ~0016950

for the spec clarification, the two places where this behaviour is described should contain text, that:

-- > text should contain that publish response contains exactly 1 value per monitored item for the response after ResendData or Transfer w. sendinitialdata

--> Transfersubscription: should the next publish response only be received at the normal publish interval or is it published right after transfer

--> explain for ResendData the purpose of the method is to resync the client cache exactly with a single value.

Matthias Damm

2023-03-20 05:38

developer   ~0018906

Added clarifications that one value per MonitoredItem is send in the next regular PublishingInterval

Jim Luth

2023-03-22 16:26

administrator   ~0018966

Agreed to changes edited in Dallas meeting.

Issue History

Date Modified Username Field Change
2022-03-25 18:43 Thilo Bellinger New Issue
2022-06-13 08:33 Martin Regen Note Added: 0016819
2022-06-21 14:02 Jim Luth Note Added: 0016949
2022-06-21 14:02 Jim Luth Assigned To => Matthias Damm
2022-06-21 14:02 Jim Luth Status new => assigned
2022-06-21 14:09 Martin Regen Note Edited: 0016819
2022-06-21 14:21 Martin Regen Description Updated
2022-06-21 14:26 Martin Regen Note Added: 0016950
2022-06-21 14:26 Martin Regen File Added: image.png
2022-06-21 14:26 Martin Regen File Deleted: image.png
2023-03-20 05:38 Matthias Damm Status assigned => resolved
2023-03-20 05:38 Matthias Damm Resolution open => fixed
2023-03-20 05:38 Matthias Damm Fixed in Version => 1.05.03 RC1
2023-03-20 05:38 Matthias Damm Note Added: 0018906
2023-03-22 16:26 Jim Luth Status resolved => closed
2023-03-22 16:26 Jim Luth Note Added: 0018966