OPC UA File Transfer internals: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
This article describes certain internal aspects of OPC UA File Transfer implementation in QuickOPC. | 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 = | = Connection locking = |
Revision as of 08:24, 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.
Read/write chunking
(tbd)
Metadata caching and model changes
(tbd)
Read/write size limits
(tbd)
Adaptive read/write sizes
(tbd)