[10184] Ошибка сохранения данных службы опроса после обновления на 3.45

Версия ЛЭРС УЧЁТ: 3.45
После обновления не опрашиваются нормальным образом часть точек учета.
Сыпит ошибками вида:
21.03.22 15:38 - Необработанная ошибка в сервере. “Ошибка при сохранении данных о потреблении и значений интеграторов.”. Разработчикам был отправлен отчет об ошибке. Violation of PRIMARY KEY constraint ‘PK__#B0A3A2C__03BE4CA0A735D7EF’. Cannot insert duplicate key in object ‘dbo.@Data’. The duplicate key value is (Mar 21 2022 2:00PM). The statement has been terminated.
21.03.22 15:38 - Ошибка опроса: Ошибка при сохранении данных о потреблении и значений интеграторов. Violation of PRIMARY KEY constraint ‘PK__#B0A3A2C__03BE4CA0A735D7EF’. Cannot insert duplicate key in object ‘dbo.@Data’. The duplicate key value is (Mar 21 2022 2:00PM). The statement has been terminated.

Сам опрос по этим и всем остальным точкам зависает после чтения данных с прибора на неопределенное время. Непонятно, что происходит в это время обработка данных сервером ЛЭРС или ожидание ответа SQL сервера. На сервере MSSQL нет обрабатываемых транзакций.

В приложенном снимке приложения видно, что до обновления опрос работал каждые 5 минут, после обновления (между 12:50 и 13:30) идут ошибки. Между 11 и 12 часами попытка обновления не удалась не хватило размера журнала транзакций, установили неограниченный размер.

Прошу разобраться и указать какие действия нам необходимо предпринять.

Журнал опроса после обновления, время для понимания, сколько висит опрос со считанными данными

Журнал опроса этой же точки до обновления

Уточните, пожалуйста, какая версия у вас была установлена до обновления на текущую версию?

Была версия 3.07 R28.6.

Спасибо за информацию.

Версия, к сожалению, довольно старая, поэтому точно сказать что конкретно привело к такой проблеме сложно.

Мы нашли потенциальную причину такого сбоя. Пару месяцев назад было добавлено усреднение архивных текущих значений, и это могло привести к попытке сохранить две архивные записи с одинаковой датой.

Мы исправили это в 3.45.1. Пожалуйста, проверьте будут ли возникать ошибки после установки обновления.

Добрый день!

Обновление 3.45.1 (сборка 34508) от 22.03.2022 доступно для установки.

Обновились.
Ошибки примари кей перестали появляться.
Но опрос по части точек как не заканчивался нормальным образом так и продолжает после опроса прибора зависать. До обновления, после считывания данных с прибора, информация в БД и завершение опроса заканчивалось за 1 секунду.

После обновления, после прочтения данных опрос висит неопределенно долго, ограничил продолжительность 5 минутами, происходит так.

Возможно это как-то связано с тем, что с прибора разные значения считываются с разным интервалом и разным периодом данных(текущие, текущие+ часовые). Т.е. есть 2 задания на опрос первый с интервалом 1 минута и второй с интервалом 5 минут. Возможно они как-то некорректно перешли в новую версию.

При этом SQL сервер съедает всю оперативную память.

Попробуйте отключить у этих точек расчет часовых усреднением текущих. Думаю, проблема может быть в этом.

Скажите, нормализовализуется ли работа?

То, что sql съедает всю память это норма, он так и должен работать если предельный объем не ограничен.

Дело в том, что зависают произвольные сеансы опроса у произвольных объектов, и там где нет усреднения по часовым значениям и где есть. Пробовал отключать, это было первым что пришло в голову, не помогло.
Опрос теперь выглядит так, когда опросится, когда нет. Для выделенного объекта нет опроса часовых значений. По времени видно, что опрос идет > 10 минут. После перехода в режим остановки еще висит несколько минут с красным квадратом.
Сейчас опять придется откатываться на резервную копию.

Пожалуйста, приложите журнал сервера за 23 и 24 марта. Стиуация неприятная, но вполне решаемая.

Напишите где его взять, завтра подымем обновленную копию сервера и вышлем.

Здесь информация
https://docs.lers.ru/manual/support/faq.html#logs

Возможно, посмотрим журналы и решим проблему. Если не горит, то подождите пока мы проанализируем журнал.

И, пожалуйста, еще журнал службы опроса приложите. Похоже, проблема может быть на ее стороне.

Размер архива ~50 мб, содержит персональные данные адресов доступа к точкам учета. Укажите пожалуйста адрес электропочты на который можно его отправить без общего доступа.
В личное сообщение не влезает.

support@lers.ru

Отправил почтой ссылку на ЯндексДиск с архивом журналов.

Добрый день!

Всё-таки похоже, что проблемой является именно усреднение часовых данных по текущим для МСД200. Судя по журналу, сервер тратит огромное количество времени на этот расчёт. При этом, для МСД200 он практически бесполезен. Вы можете попытаться включить этот расчёт для всех точек учёта МСД200 с помощью групповой операции.

Для этого:

  • Откройте список точек учёта и отфильтруйте его по колонке “Модель счётчика”, чтобы отобрать только МСД200.

  • Вызовите на списке контекстное меню и выберите “Выбрать все записи”.

  • В панели слева нажмите “Групповые операции”.

  • Выберите “Настройка расчёта и хранения”.

  • Задайте нужные параметры расчёта, но обязательно отключите расчёт интеграторов и расчёт часового архива. Настройки могут быть, например, такими:

  • Завершите групповую операцию.

После этого сервер перестанет проводить расчёт данных, снизится загрузка сервера и SQL сервера, и опрос в течение часа нормализуется. Можно перезагрузить сервер ЛЭРС УЧЁТ, чтобы быстрее завершить сеансы, которые приводят к высокой загрузке.

Указанная вами процедура не принесла результатов.


Часть точек до какого-то времени успевает считаться в нормальном режиме, дальше начинается завал и зависание до наступления таймаутов опроса и снятия с опроса.

Также при установке обновления обнаружилось, что у некоторых точек с МСД устанавливается автоопрос часовых значений, причем у части он замещает опрос текущих, а у части устанавливается дополнительно к опросу текущих. Во всех точках с МСД проверил и оставил опрос только текущих, ничего не изменилось. Возможно в процессе обновления что-то еще встает некорректно, что приводит к проблемам с автоопросом.

Возможно ли влияние на количество портов опроса? Для каждого подключения у меня организован свой порт опроса с количеством подключений равным 1.

В старой версии наблюдалась схожая картина зависаний опроса, которая постепенно прогрессировала в течении года от 10 минут до ~ получаса. Но она случалась после каждого получаса. Т.е. до ~ 30 минут каждого часа опрос происходил нормально потом происходило зависание. Решилось ограничением опроса большого количества приборов по GPRS каналам (каждый канал на отдельном порту), раз в сутки с 0часов до 1 часа ночи. Обнаружили случайно при смене IP сервера, модемы не смогли подключиться и заторы в опросе прекратились.

Теперь покажите журнал сервера и службы опроса за 6 апреля.

Честно говоря, не совсем верное решение делать по одному порту на каждое подключение. Интернет-опрос прекрасно будет работать через один порт. Возможно, в этом проблема и есть, но надо изучить журналы.

Отправил почтой архив журналов на support@lers.ru.