Мой клиент MILO OpcUa работал нормально, пока я не набрал определенное количество подписок - 10. Затем он начал получать Bad_TooManyPublishRequests
. Я решил проблему, установив OpcUaClientConfigBuilder#setMaxPendingPublishRequests = 10;
, как было предложено этим ответом, и он работает нормально снова.
Но как мне заранее узнать, что сервер может обрабатывать только 10 ожидающих запросов на публикацию?
После подключения к серверу я могу прочитать некоторую информацию о сервере. Как ServerState, CurrentTime или ServerProductName, как показано в ReadExample#readServerStateAndTime
. Но как мне получить настройки серверов MaxPendingPublishRequests, MinSamplingInterval и т. Д.?
Также какова связь между подпиской и MonitoredItem? Я использовал один MonitoredItem на подписку, что сейчас кажется плохим подходом. Если вы хотите отслеживать сотни узлов, должны ли они быть в одной подписке или разделены на несколько подписок? Должны ли они быть сгруппированы по publishingInterval
или какова правильная логика для их группировки?
Правки приветствуются, спасибо.