Регистрация полученных / переданных сообщений в Service Broker

Есть ли способ записать (в файл или таблицу базы данных) сообщения, отправленные и / или полученные от службы Service Broker, без изменения процедуры активации или кода отправки сообщения?

Я знаю, что могу изменить процедуру активации, чтобы записать полученное сообщение в таблицу до (или после) его обработки. И я могу изменить хранимую процедуру отправки, чтобы сделать то же самое, но я ищу то, что:

  • Мне не придется создавать инфраструктуру самостоятельно, а также кодировать и отлаживать с нуля.
  • Был тщательно протестирован и известно, что не мешает нормальной обработке (прозрачный).
  • Я могу включить или отключить по желанию.

Примечание: мне нужно регистрировать фактическое содержание сообщения и связанные метаданные.

ТИА

1 ответ

Решение

Краткий ответ: Нет.

Вы можете отслеживать Broker:Conversation Event Class через трассировку сервера или как уведомление о событии, но вы получите только метаданные, а не содержимое сообщения.

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

Наилучший вариант, безусловно, состоит в том, чтобы сделать это из самой активированной хранимой процедуры.

Другие вопросы по тегам