Hi,
I’m using a OPC-UA connection to connect to an OPC server whos server time is different than the PC which is running Ignition. In my case, the difference is greater than the SecurityTokenLifetime (1 day). In this case, the OPC connection is not established, but “Faulted”. See log below.
Is this a bug in your OPC UA client stack?! Shouldn’t the check for channel renewal always be done with either the client or the server time?
Additional Infos:
[ul]
[li]SecurityPolicy is “None”, Message Security Mode is also “None”.[/li]
[li]Connections works if time of server and client matches.[/li]
[li]Connecting with other clients (Unified Automation UaExpert) works even with time difference.[/li][/ul]
Do you need further information?
Thanks for your help!
Best Regards
StatusCode[Severity=Bad, Subcode=Bad_TcpSecureChannelUnknown]: Channel expired. Created at Tue Apr 01 03:13:38 CEST 2014, lifetime=3600000, current time is Fri Apr 25 16:37:37 CEST 2014.
at com.inductiveautomation.xopc.common.stack.UAChannel.processSymmetricChunk(UAChannel.java:869)
at com.inductiveautomation.xopc.common.stack.UAChannel.processChunk(UAChannel.java:778)
at com.inductiveautomation.xopc.common.stack.UAChannel.access$000(UAChannel.java:62)
at com.inductiveautomation.xopc.common.stack.UAChannel$ProcessChunk.run(UAChannel.java:1581)
at com.inductiveautomation.xopc.client.stack.SerialExecutionQueue$RunnableExecutor.execute(SerialExecutionQueue.java:100)
at com.inductiveautomation.xopc.client.stack.SerialExecutionQueue$RunnableExecutor.execute(SerialExecutionQueue.java:97)
at com.inductiveautomation.xopc.client.stack.SerialExecutionQueue$PollAndExecute.run(SerialExecutionQueue.java:75)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)