代码之家  ›  专栏  ›  技术社区  ›  Chris

让Service Broker在检测有毒信息方面不那么咄咄逼人?

  •  6
  • Chris  · 技术社区  · 16 年前

    Service Broker提供自动中毒消息检测。当包含RECEIVE语句的事务回滚五次时,Service Broker会通过自动将队列状态设置为OFF来禁用该事务从中接收消息的所有队列( http://msdn.microsoft.com/en-us/library/ms166137.aspx

    我对这种基本方法很好,但有没有办法将重试次数从五次更改为更高的次数,也许是二十次?

    ALTER QUEUE MyQueue SET RollbacksBeforePoison=20
    

    2 回复  |  直到 16 年前
        1
  •  11
  •   Remus Rusanu    16 年前

    否,中毒消息检测回滚计数硬编码为5,您无法更改它。但是,当禁用队列时,会在队列上为 BROKER_QUEUE_DISABLED the external activation mechanis m将其线程池大小调整为传入消息的速率。

    更新

    从SQL Server 2008 R2开始,有一个新的选项 ALTER/CREATE QUEUE :

    POISON_MESSAGE_HANDLING(STATUS = OFF/ON)
    

    指定是否有毒消息 上。

    包含有毒消息的队列 设置为OFF的处理将不会 连续五次残疾