View Issue Details

IDProjectCategoryView StatusLast Update
000218910000-004: Servicespublic2013-08-20 20:43
ReporterKarl Deiretsbacher Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version1.01 
Fixed in Version1.03 
Summary0002189: Handling of Publish requests in special states
Description

(1) DeleteSubscriptions states: "If this is the last Subscription assigned to the Client issuing the request, then all Publish requests queued by that Client are de-queued and a negative response is returned for each"

This should be changed as follows:
"If this is the last Subscription for the Session, then all Publish requests still queued for that Session are de-queued and shall be returned with Bad_NoSubscription".

I also propose to add a separate state to the Subscription State Table.

(2) TimeoutHint for Publish
The description of RequestHeader.TimeoutHint states "For a Server this timeout is only a hint".
The Subscription State Table, however, requires its use by stating:
"Validate if the publish request is still valid by checking the timeoutHint in the RequestHeader.
If the request timed out, send a Bad_Timeout service result for the request and de-queue another publish request"

If support of the timeoutHint is required for Publish, this should also be mentioned in the description of the requestHeader and maybe even in the description of the Publish service.

TagsNo tags attached.
Commit Version
Fix Due Date

Activities

Jim Luth

2012-10-02 16:32

administrator   ~0004121

Discussed in telecon today.

(1) Good idea to require a specific error code Bad_NoSubscription. This will require a normative errata be published for Part 4.

(2) Agree clarifiy that the Hint is mandatory for the Client to provide, but optional for the Server to observe.

Matthias Damm

2013-07-23 23:19

developer   ~0004845

Added clarification to return Bad_NoSubscription in DeleteSubscriptions.
Resolved in document IEC 62541-4 - Services [Pre-CDV] 1.02.02.doc
An errata is not necessary since Publish already defines Bad_NoSubscription as the result if no subscription exists. The change in DeleteSubscriptions makes it just more concrete without reading the Publish service results.

From my point of view the handling of the timeout hint for Publish is mandatory. Since Publish request are queued in the sever they may time out and using a timed out request will cause lost sequence numbers and it may take a while until a client notices that loss.

Jim Luth

2013-07-30 17:36

administrator   ~0004865

Discussed again in today's telecon and decided to override decision #2 from 2012-10-02. We will remove all conflicting statements that imply the timeout hint is optional and make it mandatory for both clients and servers.

Matthias Damm

2013-08-20 14:44

developer   ~0004932

Added the following clarification to RequestHeader::timeoutHint
The Server shall check the timeoutHint parameter of a PublishRequest before processing a PublishResponse. If the request timed out, a Bad_Timeout Service result is sent and another PublishRequest is used.

Resolved in document IEC 62541-4 - Services [Pre-CDV] 1.02.02.doc

Jim Luth

2013-08-20 20:43

administrator   ~0004949

agreed to changed text

Issue History

Date Modified Username Field Change
2012-09-13 13:47 Karl Deiretsbacher New Issue
2012-09-13 14:55 Karl Deiretsbacher Description Updated
2012-09-13 14:59 Karl Deiretsbacher Description Updated
2012-09-13 15:08 Karl Deiretsbacher Description Updated
2012-10-02 16:32 Jim Luth Note Added: 0004121
2012-10-02 16:32 Jim Luth Status new => assigned
2012-10-02 16:32 Jim Luth Assigned To => Matthias Damm
2013-07-23 23:19 Matthias Damm Note Added: 0004845
2013-07-23 23:19 Matthias Damm Status assigned => feedback
2013-07-30 17:36 Jim Luth Note Added: 0004865
2013-07-30 17:36 Jim Luth Status feedback => assigned
2013-08-20 14:44 Matthias Damm Status assigned => resolved
2013-08-20 14:44 Matthias Damm Resolution open => fixed
2013-08-20 14:44 Matthias Damm Note Added: 0004932
2013-08-20 20:43 Jim Luth Status resolved => closed
2013-08-20 20:43 Jim Luth Note Added: 0004949
2013-08-20 20:43 Jim Luth Fixed in Version => 1.03