Серверы и ИИ: практическое применение
Durable Subscriptions: подтвердить сохранение очередей после перезапуска
Обычные очереди OPC UA для надёжной доставки обычно находятся в памяти. Перезапуск сервера способен удалить их. Если проект требует продолжить сбор после длительного отсутствия клиента или перезапуска, нужно подтвердить поддержку Durable Subscriptions, а не только увеличить обычный интервал ожидания.
SetSubscriptionDurable вызывают до создания MonitoredItems в этой подписке и в контексте владеющей ею сессии. Сервер сообщает согласованную длительность. Реализация должна поддерживать предусмотренное сохранение настроек и очередей, а также TransferSubscriptions. Клиенту нужны сохранённые идентификаторы, handles и последний подтверждённый номер последовательности.
Даже durable-режим не является обещанием абсолютной сохранности при любом отказе. Спецификация допускает потерю данных при некорректном завершении или отключении питания. Поэтому частоту сохранения и допустимый разрыв оценивают по документации и испытаниям конкретного сервера, без приравнивания подписки к бесконечному архиву.
В приёмке раздельно проверяют плановое отключение клиента, штатный перезапуск сервера и согласованный аварийный сценарий. Сверяют восстановленные последовательности и явно отмечают пропуски. Наличие метода в адресном пространстве полезно для обнаружения возможности, но не заменяет подтверждение всей цепочки долговременного хранения и восстановления.
Основание — OPC Foundation OPC 10000-4, v1.05.07, 2026-04-15, разделы 6.8. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Клиент, сервер и физический объект не испытывались. Приведён проектный критерий проверки, а не отчёт о выполненной настройке.