6
Служебные сообщения
Не только отладка кода
мониторинг долго выполняющихся процессов
ведение журнала приложения
Подходы к реализации
вывод на консоль или в журнал сервера
запись в таблицу или в файл
передача информации другим процессам
Второй способ отладки предполагает добавление в важные места кода
служебных сообщений, содержащих текущий контекст. Анализируя
сообщения можно понять, что именно пошло не так.
Помимо собственно отладки, служебные сообщения могут выполнять
и другие функции. Сообщения помогут определить, на каком этапе
выполнения находится долго выполняющийся процесс. Приложение
может вести собственный журнал, по аналогии с тем, как СУБД ведет
журнал сообщений сервера. Такой журнал с важной информацией
(например, с данными о запуске отчетов: название отчета, имя
пользователя, дата выполнения, значения параметров и т. д.) может
сильно облегчить работу специалистов поддержки.
Можно выделить несколько подходов к реализации служебных
сообщений в PL/pgSQL. Помимо вывода сообщений на консоль
(а также в журнал сообщений сервера) уже знакомой командой RAISE,
можно отправлять сообщения другому процессу, записывать
сообщения в таблицу или в файл.
При выборе того или иного подхода нужно обращать внимание на
много вопросов. Являются ли сообщения транзакционными
(отправляются не дожидаясь окончания транзакции или только при ее
завершении)? Можно ли отправлять сообщения одновременно из
нескольких сеансов? Как организовать доступ к журналу сообщений и
как очищать его от старых записей? Какое влияние оказывают
журналирование на производительность? Требуется ли модификация
исходного кода?