opc-ua - UaSerializationException:请求超过远程最大消息大小:2434140 > 2097152
问题描述
我是菜鸟,尝试使用以下代码进行批量订阅,但是出了点问题,请问如何解决这个问题
OpcUaSubscriptionManager subscriptionManager = opcUaClient.getSubscriptionManager();
UaSubscription subscription = subscriptionManager.createSubscription(publishInterval).get();
List<MonitoredItemCreateRequest> itemsToCreate = new ArrayList<>();
for (Tag tag : tagList) {
NodeId nodeId = new NodeId(nameSpace, tag.getPath());
ReadValueId readValueId = new ReadValueId(nodeId, AttributeId.Value.uid(), null, null);
MonitoringParameters parameters = new MonitoringParameters(
subscription.nextClientHandle(), //
publishInterval, //
null, // filter, null means use default
UInteger.valueOf(queueSize), // queue size
true // discard oldest
);
MonitoredItemCreateRequest request = new MonitoredItemCreateRequest(readValueId,
MonitoringMode.Reporting, parameters);
itemsToCreate.add(request);
}
BiConsumer<UaMonitoredItem, Integer> consumer =(item, id) ->
item.setValueConsumer(this::onSubscriptionValue);
List<UaMonitoredItem> items = subscription.createMonitoredItems(
TimestampsToReturn.Both,
itemsToCreate,
consumer
).get();
for (UaMonitoredItem item : items) {
if (!item.getStatusCode().isGood()) {
log.error("failed to create item for nodeId={} (status={})",item.getReadValueId().getNodeId(), item.getStatusCode());
}
}
解决方案
您要创建多少个项目?
结果消息似乎超出了您要连接的服务器设置的限制。您可能需要分解您的列表并以较小的块创建项目。
推荐阅读
- phantomjs - pyspider phantom 未启用;501 服务器错误
- mongodb - 查询 min 和 max 列包含一个值的 MongoDB 文档
- python - 如何将views.py文件中存在的图形访问到django中的html模板中
- powershell - 如何让我自己的别名覆盖模块的别名?
- python - 根据其他列表从列表中挑选
- batch-file - 添加单个 doskey 命令 - Windows 注册表
- javascript - reactjs - 为动态创建的按钮创建切换
- java - Maven:如何使用 build.gradle 文件?
- python - 使用 Python 删除文件中的行会产生错误
- node.js - mongodb TTL不会过期nodejs