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