The client creates a OpcUa thread which is responsible for the initialization and connection to the server. It is noticed that after 1hr/~60-64min the client monitors a disconnect through the connectionStatusChanged callback where the server status is Disconnected. This causes the server to remove certain providers. The callback triggered is not by a call to disconnect but rather the client SDK which monitors the connection.
Logs:
- Client Trace Logs:
- Server journalctl logs:
- Wireshark capture:
I am not able to clearly identify the reason for this behavior with the existing logs generated, I have instrumented the client as below just before connection to the server.
Code: Select all
SrvT::initTrace(UaTrace::Data, 500000, 5, "OPC_UA_Client.log", "Client Logs");
SrvT::setTraceActive(true);
/* Set Trace Settings for stack*/
UaPlatformLayer::changeTraceSettings(OpcUa_True, OPCUA_TRACE_OUTPUT_LEVEL_ALL);
SrvT::setStackTraceActive(true, OPCUA_TRACE_OUTPUT_LEVEL_ALL);
- If the client SDK is monitoring the connection and responsible for connection handling what are the possible reasons for disconnection ?
- Are there any other ways to instrument the code to analyse disconnections triggered by the client or server ?
- The OpcUa client thread is running with session that was responsible for initialization and connection :
a. What is the correct procedure to reconnect with the server after a disconnect ?
b. Can the existing UaSession be used to reconnect with the server ?
- It is expected that the OpcUa connection to keep running given that problem is seen only after upgrade of the client SDK from version 1.3.2.200 to 1.8.2.604. Is there any recommendation on the right upgrade path.
Thanks,
Kaushal