Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [milo-dev] eclipse milo - time de-synchronization issues between opcua server and client

Mikalai,

Is this OPC UA server also based on Milo or something else? 

It might be useful to turn the logger "org.eclipse.milo.opcua.sdk.client.subscriptions.OpcUaSubscriptionManager" to DEBUG level and see what the calculated timeout hint used for PublishRequests is.

It seems you are already getting the available callback notifying you why PublishRequests are failing, there is not any additional logic right now that might detect this error is happening for *all* PublishRequests and do anything about it.

On Tue, Mar 24, 2020 at 4:13 AM Lenovo K3 Owner <lenovo.k3.1.owner@xxxxxxxxx> wrote:
Hello Milo-dev

case:
we have opcua server that periodically drifts in time and this drift maybe as big for several minutes for an hour (for instance client time maybe 12:00:00 and for opcuaserver its 12:00:30)

our client makes subscription to server and configures listener using:

UaSubscriptionManager.SubscriptionListener:
public void onPublishFailure(UaException exception){
  log.error("onPublishFailure", exception);
}
however because of time drift after several hours of work we stop to receive data updates and instead begin to receive errors like:

2020-03-23 15:31:15.207 ERROR 1 --- [milo-shared-thread-pool-2] .i.q.c.r.SubscriptionBasedNodeReaderImpl : onPublishFailure

org.eclipse.milo.opcua.stack.core.UaServiceFaultException: status=Bad_Timeout, description=The operation timed out.

at org.eclipse.milo.opcua.stack.client.UaStackClient.lambda$deliverResponse$5(UaStackClient.java:273) [stack-client-0.3.4.jar:0.3.4]

at org.eclipse.milo.opcua.stack.client.UaStackClient$$Lambda$1341/00000000600BFC40.run(Unknown Source) [stack-client-0.3.4.jar:0.3.4]

at org.eclipse.milo.opcua.stack.core.util.ExecutionQueue$Task.run(ExecutionQueue.java:119) [stack-core-0.3.4.jar:0.3.4]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_242]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_242]

at java.lang.Thread.run(Thread.java:821) [na:1.8.0_242]



right now i am considering the best way to detect case when milo client stopped to receive updates from server because of time drift issue or whatever ?

is there a good any way to distinguish these problems from some communication errors, some dedicated api ?

also am interested in max possible time difference between client and server: is this hardcoded inside of milo client or configurable or even it's determined by opcua server only ?

---
Best regard,
Mikalai
_______________________________________________
milo-dev mailing list
milo-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/milo-dev

Back to the top