Difference between revisions of "OPC UA File Transfer internals"

From OPC Labs Knowledge Base
Jump to navigation Jump to search
Line 8: Line 8:
  
 
Note that "forced" session terminations, such as those caused by long-lasting network disconnections, can still render the OPC UA file handle invalid, which will manifest itself by persistent errors returned from operations made with that handle.  
 
Note that "forced" session terminations, such as those caused by long-lasting network disconnections, can still render the OPC UA file handle invalid, which will manifest itself by persistent errors returned from operations made with that handle.  
 +
 +
= Stream buffering =
 +
(tbd)
 +
 +
= Stream expansion =
 +
(tbd)
  
 
= Read/write chunking =
 
= Read/write chunking =

Revision as of 08:25, 20 May 2021

This article describes certain internal aspects of OPC UA File Transfer implementation in QuickOPC.

Object type checking

Before performing the actual file transfer operation, QuickOPC libraries check whether the target object exists and is of the intended type (file or directory). Without this, some operations would not behave predictably and could return errors that do not describe the problem well.

Connection locking

OPC UA file handles are only valid in scope of the OPC UA session. If the client disconnects from the servers and establishes a new session, the previously obtained file handle is no longer (guaranteed to be) valid. Since QuickOPC normally automatically disconnects from the server when the session is not needed, this could cause a problem if the file handle was needed over a longer time period. The file transfer implementation prevents this issue by locking the connection (forcing the session to stay open) until the file handle is disposed of.

Note that "forced" session terminations, such as those caused by long-lasting network disconnections, can still render the OPC UA file handle invalid, which will manifest itself by persistent errors returned from operations made with that handle.

Stream buffering

(tbd)

Stream expansion

(tbd)

Read/write chunking

(tbd)

Metadata caching and model changes

(tbd)

Read/write size limits

(tbd)

Adaptive read/write sizes

(tbd)