View Issue Details

IDProjectCategoryView StatusLast Update
000576310000-003: Address SpaceSpecpublic2020-08-25 13:37
ReporterKevin Herron (Inductive Automation) Assigned ToJeff Harding  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Summary0005763: Inconsistency between Part 3 and Part 5 about persisting NodeIds
Description

When describing the NodeId attribute, Part 3, Section 5.2.2 says:

A Server shall persist the NodeId of a Node, that is, it shall not generate new NodeIds when rebooting.

However in Part 5, Section 6.3.1 when describing the NamespaceArray property, it says:

NamespaceArray defines an array of namespace URIs. This Variable is also referred as namespace table. The indexes into the namespace table are referred to as NamespaceIndexes. NamespaceIndexes are used in NodeIds in OPC UA Services, rather than the longer namespace URI. Index 0 is reserved for the OPC UA namespace, and index 1 is reserved for the local Server. Clients may read the entire namespace table or they may read individual entries in the namespace table. The Server shall not modify or delete entries of the namespace table while any client has an open session to the Server, because clients may cache the namespace table. A Server may add entries to the namespace table even if clients are connected to the Server. It is recommended that Servers not change the indexes of the namespace table but only add entries, because the client may cache NodeIds using the indexes.

Nevertheless, it might not always be possible for Servers to avoid changing indexes in the namespace table. Clients that cache NamespaceIndexes of NodeIds should always check when starting a session to verify that the cached NamespaceIndexes have not changed.

--

These two sections describe mutually exclusive behavior for the server. I think Part 3 should change to say "should" instead of "shall", and perhaps add a note about how it should be avoided if possible.

TagsNo tags attached.
Commit Version
Fix Due Date

Activities

Rod Stein

2020-06-25 20:07

developer   ~0012500

Or perhaps part three could be changed to "... shall persist a NodeId's Identifier Type and Identifier of a Nodeit, that is, it shall not generate new NodeId Identifiers when rebooting".

Liam Power

2020-06-26 09:05

reporter   ~0012501

The meaning of Part 3 does not relate to the namespace index itself, but to the namespace URI and identifier of the node ID. The namespace index is simply an index into a table that can change (as described in part 5) although of course servers should minimise the frequency of changes insofar as possible.

Matthias Damm

2020-06-29 06:37

developer   ~0012502

I fully agree with Liam. The clarification should be that NodeId identifier and namespace URI shall not change. It is essential that this stays as SHALL.

Jim Luth

2020-06-30 16:15

administrator   ~0012517

Last edited: 2020-06-30 16:22

Add clarification to Part 3 that says the Namespace URI and the Node identifier must be persisted. Also clarify that the Server may change the namespace index for a URI on future sessions.

Jeff Harding

2020-06-30 16:55

developer   ~0012524

Change the description of 5.2.2 NodeId to
"Nodes are unambiguously identified using a constructed identifier called the NodeId. Some Servers may accept alternative NodeIds in addition to the canonical NodeId represented in this Attribute. A Server shall persist the identifierType and identifier NodeIdelements of a Node as well as the Namespace Uri which the namespaceIndex NodeId element references. A Server may change the namespaceIndex NodeId element of a Node with future Sessions and therefore a Client shall not assume the namespaceIndex will not change. The structure of the NodeId is defined in 8.2"

Jeff Harding

2020-06-30 16:55

developer   ~0012525

Clarified the definition of NodeId.

Jim Luth

2020-08-25 13:37

administrator   ~0012713

Agreed to changes in ad-hoc Telecon.

Issue History

Date Modified Username Field Change
2020-06-25 17:53 Kevin Herron (Inductive Automation) New Issue
2020-06-25 20:07 Rod Stein Note Added: 0012500
2020-06-26 09:05 Liam Power Note Added: 0012501
2020-06-29 06:37 Matthias Damm Note Added: 0012502
2020-06-30 16:15 Jim Luth Note Added: 0012517
2020-06-30 16:15 Jim Luth Assigned To => Jeff Harding
2020-06-30 16:15 Jim Luth Status new => assigned
2020-06-30 16:22 Jim Luth Note Edited: 0012517
2020-06-30 16:55 Jeff Harding Note Added: 0012524
2020-06-30 16:55 Jeff Harding Status assigned => resolved
2020-06-30 16:55 Jeff Harding Resolution open => fixed
2020-06-30 16:55 Jeff Harding Fixed in Version => 1.05
2020-06-30 16:55 Jeff Harding Note Added: 0012525
2020-08-25 13:37 Jim Luth Status resolved => closed
2020-08-25 13:37 Jim Luth Note Added: 0012713