Ser*_*gey 7 sql-server-2008 sql-server service-broker
我到处搜索,网上没有答案。stackoverflow 上有一个类似的问题,但它并不完全相同,并且没有公认的答案。
当我在队列上设置事件通知时,它会创建一个队列监视器,如果从该队列接收消息导致有害消息,队列监视器就会消失。它不在“RECEIVE”或“INACTIVE”中,它只是下降。并且在使用ALTER QUEUE somequeue WITH STATUS = ON;
队列监视器启用队列后不会重新出现,我需要删除并重新创建事件通知以使事件通知再次工作。
所以问题是,这是有意为之吗?在我重新启用中毒消息后的队列之后,重新创建事件通知是一种常见的做法。
谢谢!
当事务回滚五次时,Service Broker 会禁用该事务从中接收消息的所有队列,即使您关闭了有害消息处理也是如此。这意味着重新创建事件通知。因此,采用 try.. 捕获并处理您的有毒消息。在 SB 为您处理之前,您可以尝试四次。