在Service Broker中记录接收/发送的消息

时间:2017-03-27 20:09:58

标签: sql-server-2008-r2 service-broker

是否有办法记录(在文件或数据库表中)发送到Service Broker服务和/或从Service Broker服务接收的消息,而不更改激活过程或消息发送代码?

我知道我可以更改激活程序,以便在处理之前(或之后)将收到的消息写入表中。我可以改变发送存储过程来做同样的事情,但我正在寻找的东西:

  • 我不必自己构建基础架构,并从头开始编写代码和调试。
  • 经过广泛测试,已知不会干扰正常处理(透明)。
  • 我可以随意启用或禁用。

注意:我需要记录实际的消息内容和相关的元数据。

TIA

1 个答案:

答案 0 :(得分:1)

简短回答:不。

您可以通过服务器跟踪或事件通知来监控Broker:Conversation Event Class,但只会为您提供元数据,而不是消息内容。

您可以启用queue retention但保留的消息无论如何都会在会话结束时被删除,并且无法打开/关闭。

到目前为止,最好的选择是从激活的存储过程本身执行此操作。