私はEclipse Miloを使用してOPC UAクライアントを作成していますが、クライアントが接続の損失をどのように処理するのかという次の質問を見つけました。私はこのSubscriptionManagerとサブスクリプションを使用しない監視値についてクライアントサイドのEclipse Miloでどのように切断/再接続が処理されるのですか?
:私もEclipseのミロを使用して実装されている私のOPC UAサーバーを再起動すると
OpcUaClient client = myCreateClient();
List<MonitoredItemCreateRequest> items = myCreateMonitoredItems();
UaSubscription subscription = client.getSubscriptionManager().createSubscription(1_000.0).get();
List<UaMonitoredItem> result = subscription.createMonitoredItems(TimestampsToReturn.Both, items).get();
for (UaMonitoredItem item : result) {
if (!item.getStatusCode().isBad()) {
item.setValueConsumer(value -> System.out.println("Update: " + value));
}
}
は今、私は、クライアントが再接続を参照んが、サブスクリプションはこれ以上更新されません。
09:11:15.734 [ua-shared-pool-0] DEBUG o.e.m.o.s.c.s.OpcUaSubscriptionManager - Publish service failure: StatusCode{name=Bad_NoSubscription, value=0x80790000, quality=bad}
java.util.concurrent.CompletionException: UaServiceFaultException: status=Bad_NoSubscription, message=There is no subscription available for this session.
<stack-trace-omitted>
…
だから、OpcUaSubscriptionManager状況を認識しているようですが、これらのアイテムを再登録しようとしません:ログで、私は次の出力を取得します。それは手動で行うのですか?