Механизм анализа ошибок
Смотреть видео - Механизм обработки и анализа ошибок https://rutube.ru/video/private/38eac8da1f2dd7e6d21a729797210384/?p=iXpbet7GtHvtRlM6G5KI1g
В платформе есть надстройка для более плотного анализа ошибок.
При появлении ошибки она логируется в as_trace, при этом производится анализ ошибки для отнесения ее к категории и определении ее критичности (в отдельной таблице as_errors).
На базе этого строится отчет (таблица errors), который дает понимание какие ошибки, как часто происходят, т.е. есть возможность быстро оценить текущую ситуацию по ошибкам.
Вверху выводится статистика по кол-ву ошибок за периоды.
Далее идут фильтры таблицы. Число у каждого фильтра - это количество ошибок, связанных с фильтром за неделю. (В примере ошибка truncated была 1 раз за неделю).
Тип ошибки - это либо SQL ошибка, либо JS, либо что-то другое (системное или что не подпало под паттерны ошибок SQL, JS).
Категория - это основной элемент типизации ошибок. На базе него определяется критичность ошибки. Анализ категории ведется на основе строковых паттернов в описании ошибки.
Какие есть категории ошибок (список постепенно дополняется):
- truncated - обрезана строка (значение не вместилось в переменную строки). Необходимо увеличить размерность строки или предварительно обрезать данные.
- nullRef - в ядре выдало ошибку, что идет обращение к объекту NULL
- invalidJSON - попытка обработки невалидной строки JSON
- email- проблемы с отправкой email
- convertType - проблема с конвертацией типов в SQL (например из строки в число. Используйте try_cast для безопасного приведения)
- ambiguousName - в запросе используется имя, которое есть в разных таблицах (надо указать префикс таблицы, напр. t1.id)
- saveSP - ошибка при редактировании хранимой процедуры (поменял процедуру и нажал Сохранить)
- doubtTransaction - транзакция не была выполнена (встречается в CRON иногда)
- unableDTC - Проблема с выполнением транзакций. Детали - https://stackoverflow.com/questions/15410918/msdtc-exception
- timeout - операция слишком долго выполнялась и была отменена по таймауту.
- invalidCol - неверно указана колонка таблицы где-то в SQL.
- noSelect - платформа ожидает выходного SELECT из процедуры, а его нет.
- deadlock - зафиксировал дедлок (блокировка ресурсов). Как решать - https://falconspace.ru/list/sqlserver/sql-deadlock-problem---318
- badSubquery - подзапрос вернул более 1 значения (обычно решение - использовать in вместо =, и необходимо проверить должен ли в принципе подзапрос возвращать более 1 значения по смыслу).
- badInsertFK - ошибка вставки записи в таблицу из-за ограничений внешних ключей. Часто ошибка в том, что значение по умолчанию "0" вставляют в поле внешнего ключа (а там либо NULL либо число>0 - решение nullif(value,0)).
- badInsertFieldCount - при вставке insert число полей отличается (проверьте соответствие полей insert и values).
- invalidURI - некорректный URL адрес. Встречается при неверном адресе при загрузке файла с удаленного хоста.
- badDeleteFK - не дает удалить запись из-за внешнего ключа. Лучше всего в явном виде обработать все связанные с нашей удаляемой записью объекты.
- 403 - отказ в доступе. Встречается при неверном токене в исходящем API.
- sqlInvalidLength - параметр Length в SQL функции LEFT или SUBSTRING функциях неверно задан (например, отрицательный).
- noSignalR - проблема с подключением SignalR. Встречается на лендингах, лечится добавлением необходимых скриптов в лендинг (посмотреть можно по аналогии с загрузкой стандартной страницы falcon).
- jsUndefinedRef - в JS идет обращение к полю Undefined или null объекта.
- invalidName - неверно указан объект БД в хранимых процедурах (например, имя таблицы).
- badFilePath - платформа не может найти путь на локальном диске к некоторому файлу. Проверьте, что файл, папка существует, и наличие спецсимволов в имени файла.
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем Решение проблем. Нюанс с правильными select в хранимых процедурах (Проблема лишнего select в запросах GetItems) Не используйте системные названия переменных username, langID Показывается неактуальное содержимое хранимой процедуры в программе. Переименование хранимых процедур Что делать, когда есть непонятная ошибка? Распространенные ошибки в Falcon Space Как решать проблемы оптимизации быстродействия falcon приложения Как решить проблему с почтовыми фильтрами SPAM (СПАМ) Спецсимволы на странице выводятся как знаки вопроса Нет доступных сокетов. Решение проблемы с 6+ вкладками в браузере Механизм анализа ошибок Падение сайта при локализации поля страницы [menuPreTitle]
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта