在 Service Broker 中记录 received/transmitted 条消息

Logging of received/transmitted messages in Service Broker

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

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

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

TIA

简答:否

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

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

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