Регистрация полученных / переданных сообщений в Service Broker
Есть ли способ записать (в файл или таблицу базы данных) сообщения, отправленные и / или полученные от службы Service Broker, без изменения процедуры активации или кода отправки сообщения?
Я знаю, что могу изменить процедуру активации, чтобы записать полученное сообщение в таблицу до (или после) его обработки. И я могу изменить хранимую процедуру отправки, чтобы сделать то же самое, но я ищу то, что:
- Мне не придется создавать инфраструктуру самостоятельно, а также кодировать и отлаживать с нуля.
- Был тщательно протестирован и известно, что не мешает нормальной обработке (прозрачный).
- Я могу включить или отключить по желанию.
Примечание: мне нужно регистрировать фактическое содержание сообщения и связанные метаданные.
ТИА
1 ответ
Краткий ответ: Нет.
Вы можете отслеживать Broker:Conversation Event Class через трассировку сервера или как уведомление о событии, но вы получите только метаданные, а не содержимое сообщения.
Вы можете включить сохранение очереди, но сохраненные сообщения будут удалены в любом случае, когда разговор завершится, и включить / выключить его проблематично.
Наилучший вариант, безусловно, состоит в том, чтобы сделать это из самой активированной хранимой процедуры.