一般情况下,会发生什么:如果客户端已在OPC-UA节点上进行了订阅,并且这已经运行了一段时间。 OPC-UA服务器以标准行为向客户端发布数据。然后,OPC-UA服务器因任何原因重新启动,OPC-UA是否存储其订户并恢复连接并在启动后继续发布数据?或者客户端是否需要感知服务器已关闭并因此重新创建订阅?如果是这种情况,通常应该使用轮询来实现更大的稳定性吗?
答案 0 :(得分:6)
一般,不,服务器不会存储订阅并在重新启动后恢复它们。
应通知客户端服务器将重新启动。但即使它不是一个优雅的关闭,重新连接客户端时应该尝试恢复其会话,这将失败,这意味着将尝试恢复或转移其订阅,此时它将知道重新创建订阅。 (此客户端行为在规范的第4部分中被指定为连接状态机的一部分)。
也就是说,OPC UA 1.03 确实引入了持久订阅的概念,它应该能够保存状态并在重启后继续存在,但我不知道任何实现的服务器现在这个。我还意识到,预期的目的是使订阅以非常慢的发布速率保持活动,以便客户端只能连接例如每天都要获得更新,而不是简单地保存状态并在重新启动后继续存在,这本身就是不必要的。