【问题标题】:SQL Service Broker Peek on queueSQL Service Broker Peek 队列
【发布时间】:2010-06-01 11:07:12
【问题描述】:

我正在编写一个使用 SSB 队列与其他系统通信的 C# 应用程序。 当接收到来自 SSB 队列的消息时,我并不总是确定自己能够处理它。因此我想看看队列(或者可能只是被通知有 a 消息,不一定是它的内容),但同时使用 SSB 语法,包括 WAITFOR。

这样做的原因是我希望 100% 确保不会丢失任何消息,即使接收者遇到某种不可恢复的故障。另一种解决方案可能是将其包装在事务中,但这需要更多的代码更改,而不仅仅是 peek 调用。如果有人有任何替代解决方案来确保不会丢失数据,我会全力以赴。

【问题讨论】:

  • 如果您确定无法处理队列中的下一条消息,您会怎么做?
  • 写一条日志消息并可能退出。但是我走的是交易路线,还没有找到简单的偷看的方法。

标签: c# sql-server service-broker


【解决方案1】:

您应该先收到消息,然后再决定是否可以处理。如果你不能,“写一条日志消息并退出”——但提交接收事务。如果您回滚事务(或者只是按照您的意图查看队列),您最终会遇到无法在队列中处理的消息并且您无限期地继续查看(或接收/回滚)它的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-01
    • 2015-02-28
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多