【问题标题】:Can you read from Service Broker Queues without removing the message?您可以在不删除消息的情况下从 Service Broker 队列中读取吗?
【发布时间】:2021-07-12 16:48:44
【问题描述】:

我们有这样一种情况,当记录更新时,我们希望将一条消息排队以供应用程序读取,然后应用程序将读取该消息并对其进行处理(将其路由到某处的 ESB 上)。

提出的问题是“如果我们从队列中读取消息,然后应用程序在消息转发之前失败了怎么办?”有没有办法获取消息,对其采取行动,然后一旦确定它已被处理,就将其从队列中删除?

有没有更好的方法来解决这个问题?到目前为止,他们创建的解决方案涉及完全删除 SB 并编写触发器以将数据放入表中,然后对其进行轮询、处理和删除。

【问题讨论】:

标签: sql-server service-broker


【解决方案1】:

通常,人们会在事务中读取 (RECEIVE) 消息,并在快乐路径上读取 COMMIT 或在出错后读取 ROLLBACK。这将确保消息不会过早地从队列中删除。此外,您还需要考虑如何处理有害消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    相关资源
    最近更新 更多