[10419] Не открывается справочник оборудования

Версия ЛЭРС УЧЁТ: 3.47.4
После обновления практически перестал открываться справочник оборудования: открытие справочника занимает около минуты и как правило заканчивается сообщением об ошибке в связи с истечением таймаута ответа от сервера. Ситуация наблюдается и в АРМ и на веб интерфейсе.

Нам необходима дополнительная информация. Сделайте следующее: включите отладку Сервера ЛЭРС УЧЕТ, дождитесь воспроизведения ситуации и пришлите журнал работы Сервера ЛЭРС УЧЕТ с отладочной информацией за день воспроизведения ситуации. После этого отладку сервера можно будет выключить.

Обращаем ваше внимание, что вывод отладочной информацией Сервером ЛЭРС УЧЕТ может увеличить нагрузку на жесткий диск компьютера, что может привести к общему замедлению работы системы. Также журналы работы с отладочной информацией весят значительно больше обычных журналов, поэтому может потребоваться большое свободного места на диске.

Направил на support лог сервера с включенной отладкой. Самостоятельно в логах ничего не нашел, что бы касалось рассматриваемой проблемы.
Так же произвел выполнение CHECDB - в результате 0 ошибок размещения/согласованности.
Однако если выбрать в справочнике оборудования какую либо группу объектов - иногда получаю следующую ошибку (в логах она тоже есть):

2022-08-01 13:16:15.1004	F:78	Lers.ExceptionHandler	Ошибка выполнения запроса GET http://192.168.1.52:10000/api/v0.1/Core/Equipment/View?nodeGroupId=8. 
Violation of PRIMARY KEY constraint 'PK__#034DE4A__3214EC07044208E8'. Cannot insert duplicate key in object 'dbo.@idList'. The duplicate key value is (2984).
The statement has been terminated.	1. [Core Microsoft SqlClient Data Provider] Microsoft.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint 'PK__#034DE4A__3214EC07044208E8'. Cannot insert duplicate key in object 'dbo.@idList'. The duplicate key value is (2984).
The statement has been terminated.

Уточните, справочник не открывается если фильтр по группе выбран, или без него тоже?

Можете ли дать логин и пароль от вашей системы, чтобы мы собрали нужные дополнительные журналы?

Не открывается и если выбрать фильтр по группам, и без него тоже не открывается. Отличается только ошибка: если фильтра нет - истечение таймаута, а если фильтр есть - то “Cannot insert duplicate key”.

Направил на support логин и пароль для входа в систему.

Большое спасибо за предоставленный доступ!

Первая проблема с фильтрацией уже решена и будет исправлена в 3.47.5.
Со второй проблемой (долго открывается список) всё хотя бы стало ясно. Это связано с тем, что мы добавили отображение состояния сухих контактов на список устройств. Именно этот запрос у вас выполняется около 30 секунд, что и приводит к тому, что список открывается долго, или не открывается вовсе.

Мы постараемся оптимизировать запрос в версии 3.47.5. Можете удалить пользователя, под которым мы входили.

Будем ждать исправлений и выпуска обновления.
Подскажите пожалуйста несколько моментов:

  1. Данная ситуация у нас возникает в том числе из за большого количества оборудования в справочнике? (вроде кроме нас никто не жаловался). Т.е. насколько я понимаю у остальных пользователей он тоже долго открывается, просто укладывается в таймаут.
  2. В логах сервера с включенной отладкой действительно нет информации об истечении таймаута? Если да - то где такая информация должна содержаться? Предполагаю что такие логи должен выдавать АРМ оператора.
  3. Можно ли пока увеличить таймаут ответа для того чтобы хоть как то пользоваться справочником? Клиенты готовы и 5 минут подождать, лишь бы он вообще открылся.
    UPD: третий вопрос снимается, увеличил таймаут в свойствах подключения к серверу, вроде помогло. Не знаю только как с веб интерфейсом быть, но это не особо критично в общем то…

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

  1. Нет, проблема в истории состояния сухих контактов, а не в количестве устройств. Судя по всему, у вас в ней под 100 млн записей, и выборка начинает тормозить. В статистике GPRS проблема точно такая же, там запросы одинаковые.
  2. Запрос успешно выполняется сервером. Он занимает почти 40 секунд, а АРМ оператора по умолчанию ждёт 25. Так что таймаут выходит на клиенте. Поэтому (3) вам помогло увеличения в свойствах подключения к серверу.

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

Я так понимаю на количество записей в БД влияет кол-во устройств в системе с функционалом считывания состояния сухих контактов (например у нас это ТСРВ-024М) и соответственно частота опроса этих устройств, верно?
Если да - то можно как-то этот функционал отключить? Совсем. Никогда не использовали и не планируем использовать чтение состояния сухих контактов хоть с вычислителя, хоть с модема вроде LERS GSM Plus. И уж тем более хранить в БД историю их состояния.

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

@lersbot update 3.47.5

Добрый день!

Обновление 3.47.5 (сборка 34720) от 07.08.2022 доступно для установки.

После обновления до 3.47.5 и запуска очистки бд через системные параметры ошибка ушла. Справочник отрывается примерно за 1 секунду (при открытии через АРМ на ПК с сервером ЛЭРС).
Спасибо!