The OPCUA client driver stops sending service requests for a subscription when no variables are needed in the runtime and attempts to reuse the no longer existing subscription when a variable is needed again.

The OPCUA client driver stops sending service requests for a subscription when no variables are needed in the runtime and attempts to reuse the no longer existing subscription when a variable is needed again.

Summary

When momentarily no variables are used in the runtime from a connection in the OPCUA client driver, the OPCUA client driver no longer sends service requests for the subscribtion that was previously created for these variables.

The OPCUA server will remove a subscription when it no longer receives any service requests for a subscription from a OPCUA client for a certain amount of time.

When variables are needed again in the runtime, e.g. when a screen is reopened, the OPCUA client driver attempts to reuse the previous subscription which was removed by the OPCUA server in the meantime, which results in a timeout.

The OPCUA client driver does not correctly validate the response from the server and does not create a new subscription. The variables remain INVALID in the runtime, until after a restart of the runtime.

Description

When momentarily no variables are used in the runtime from a connection in the OPCUA client driver, the OPCUA client driver no longer sends service requests for the subscribtion that was previously created for these variables.

The OPCUA server will remove a subscription when it no longer receives any service requests for a subscription from a OPCUA client for a certain amount of time.

When variables are needed again in the runtime, e.g. when a screen is reopened, the OPCUA client driver attempts to reuse the previous subscription which was removed by the OPCUA server in the meantime, which results in a timeout.

The OPCUA client driver does not correctly validate the response from the server and does not create a new subscription. The variables remain INVALID in the runtime, until after a restart of the runtime.

Solution

An issue has been addressed in the OPCUA client driver. When a subscription has been deleted due to a timeout on the server when the server no longer received any service request for this subscription, the OPCUA client driver will react correspondingly on this timeout message and create a new subscription.

Also, the OPCUA client driver cyclically performs a read of the server status every half session timeout (by default the OPCUA client driver suggests a session timeout of 600 seconds, which may be modified by the server).



Issue Number: 31027
Fixed on Date: 8.1.2014
Versions: 7.10 0 BUILD 9760 | 7.11 0 BUILD 10238