2012-07-26 54 views
1

是否有人有任何示例脚本来生成一个场景,其中消息从服务代理队列接收但未从中删除。我们认为我们在生产中经常遇到这种情况,但无法在本地进行复制。服务代理重复读取/接收

+2

更可能是应用程序有问题。 RECEIVE不过是'DELETE ... WITH OUTPUT ... FROM queue_internal_table'。受到SQL的所有事务规则的约束。 – 2012-07-26 11:47:59

回答

1

如果您在事务中接收到消息,然后提交事务,则会从队列中删除消息(除非保留=打开,但保留消息更改其状态)。

但是,如果您在事务中接收到消息,请使用它进行处理并回滚事务,然后消息停留在队列中。

在你的情况下,可能有一些未处理的异常导致此行为(并且并非代码中的所有事件都在接收消息的同一事务中)。