incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 32 ("@PhiUIA")

Здравствуйте. Регулярно последовательно возникают две ошибки:

Ошибка опроса: Lers.Models.PollSessionLogMessage

Необработанная ошибка в сервере. Ошибка при сохранении текущих данных The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 32 ("@PhiUIA"): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. Разработчикам был отправлен отчет об ошибке.

Какие логи нужны для диагностики?

Для начала сообщите версию ЛЭРС УЧЕТ.

Эта же ошибка (Ошибка опроса: Lers.Models.PollSessionLogMessage) выскочила у меня вчера 5 раз в течение дня после обновления до версии R21.06. В системном журнале ошибка описана так:

Не удалось найти GPRS-модем Robustel с идентификатором 912ххххххх010336, подключившийся на IP-адрес и порт ...:***.

Значения ххххххх в этих 5 случаях разные, т.е. ошибка возникала при подключении 5 разных модемов. Идентификаторы всех этих модемов на самом деле имеют вид 912ххххххх. Проверил настройки соответствующих подключений - там все нормально. СМС-командами запросил у модемов идентификаторы - все нормально. Откуда ЛЭРС-учет взял (приписал к идентификаторам) еще 6 цифр - загадка. Причем в 3 случаях их пяти эти шесть цифр - 010336, в двух - 010304.

Ошибка возникала “произвольно”, т.е. большинство подключений (как этих модемов, так и других) в течение дня происходили нормально. Вечером я обновился до R21.07, и больше этой ошибки не вижу.

Версия R21.08 (32126).

Приложите журнал сервера ЛЭРС УЧЕТ, дамп обмена оба за то же самое время, в которое возникала вышеупомянутая ошибка. Также пришлите идентификаторы модемов, по которым возникает эта ошибка.

Логи во вложении.
dump.zip (7.67 MB)
server.2017-03-27.log.gz (7.66 MB)

Добрый день. Где посмотреть идентификаторы модемов? У меня в тексте ошибки они не упоминаются.

Ошибка опроса: Lers.Models.PollSessionLogMessage

Необработанная ошибка в сервере. Ошибка при сохранении текущих данных The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 32 ("@PhiUIA"): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision. Разработчикам был отправлен отчет об ошибке.

Вы их должны были указать при заведении модема как оборудования в ЛЭРС УЧЕТ, то есть в свойствах оборудования модема.

Для опроса мы используем GSM модемы и модель “Стандартный GSM-модем”, как отдельное оборудование они у нас не заведены.
Если я правильно понял, идентификатор требуется для GPRS модема. С ними проблема у Дмитрий Анисимов, в тексте ошибки, которая появляется у меня, они вообще не упоминаются.

Прошу прощения, не обратил внимания что это не ваш комментарий.

Пришлите пожалуйста журнал Сервера ЛЭРС УЧЕТ и сообщите время возникновения ошибки.


Дмитрий Анисимов создайте отдельную тему по вашей проблеме.

Лог во вложении.
server.2017-03-27.log.gz (7.66 MB)

:sh_ok: А разве у меня есть какая-то проблема?



Простите, не заметил. Ошибки возникали
27.03.2017 18:08:12
27.03.2017 18:08:21
27.03.2017 18:33:41
27.03.2017 18:33:45
27.03.2017 18:41:36
27.03.2017 18:41:38
27.03.2017 18:42:04
27.03.2017 18:42:06

Механизм возникновения ошибки нам понятен.
Серверу возвращается значение параметра cosФ больше единицы. При попытке расчитать угол получается неверное число (NaN), которое приводит к сбою при попытке сохранить его в БД.

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

Возникает вопрос по какой причине вообще считываются неверные показания. В драйвере электросчётчиков мы не можем найти причину. Скорее всего, из-за сбоев при опросе система многократно повторяет запрос и в итоге дважды получает один и тот же пакет. Из-за этого в качестве параметра cosФ могло быть записано другое значение.

Из анализа ваших журналов известно, что к ошибке приводил опрос устройства ПСЧ-4ТМ.05М с серийным номером 607112938. Ошибка возникла 03-27-2017 примерно в 18:34.

Если вы приложите все журналы опроса этого прибора начиная с 17:00 и до 19:00 за 27 марта, мы проанализируем их и постараемся выявить причину сбоя.

Здравствуйте! Журналы во вложении.
Журнал опроса 3.xls (24.5 KB)
Журнал опроса 2.xls (23.5 KB)
Журнал опроса 1.xls (27 KB)

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

Механизм возникновения следующий.

  1. ЛЭРС УЧЁТ отправляет прибору команду на чтение параметра и ждёт ответа. Если в течение 4 (в вашем случае) секунд ответа нет, служба опроса повторяет запрос.
  2. После нескольких неудачных попыток ответ всё же приходит и служба опроса сохраняет значение параметра.
  3. Отправляется запрос на чтение следующего параметра.
  4. Приходит ответ, но не на текущий запрос, а на один из предыдущих повторов. Служба опроса посчитала этот ответ потерянным, но он всё же дошёл позже, когда уже была отправлена другая команда.

В случае если это возможно, мы отслеживаем что от прибора считан нужный ответ, но протокол ПСЧ-4ТМ этого не позволяет. Все ответы выглядят одинаково, в них просто сохранено значение.

Решение проблемы - увеличить таймаут на ожидание ответа от прибора на 7000-10000мс.

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

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

Здравствуйте! Спасибо за информацию, попробую увеличить таймаут.