强制 Service Broker 队列进入错误状态

Force Service Broker queue into an error state

在我的工作中,有人要求测试当 SQL 中的 Service Broker 队列在对话期间进入错误状态时触发的代码。此时我们关闭它并重新打开它。

但是,我尝试将 sys.conversation_endpoints 的状态设置为 "ER"(错误状态),但被拒绝了。我的问题:您能否强制 Service Broker 队列进入错误状态,如果可以,怎么做?

任何帮助或信息将不胜感激!

看来您实际上是在谈论将 对话 移动到错误状态,而不是队列。为此,只需从目标端点end the conversation with error

END CONVERSATION {target-endpoint-handle} 
 WITH ERROR = <my error code>
 DESCRIPTION = '<my error description>';

这将结束对话并向您的服务发送一条错误消息。