2012-07-26 53 views
1

是否有人有任何示例腳本來生成一個場景,其中消息從服務代理隊列接收但未從中刪除。我們認爲我們在生產中經常遇到這種情況,但無法在本地進行復制。服務代理重複讀取/接收

+2

更可能是應用程序有問題。 RECEIVE不過是'DELETE ... WITH OUTPUT ... FROM queue_internal_table'。受到SQL的所有事務規則的約束。 – 2012-07-26 11:47:59

回答

1

如果您在事務中接收到消息,然後提交事務,則會從隊列中刪除消息(除非保留=打開,但保留消息更改其狀態)。

但是,如果您在事務中接收到消息,請使用它進行處理並回滾事務,然後消息停留在隊列中。

在你的情況下,可能有一些未處理的異常導致此行爲(並且並非代碼中的所有事件都在接收消息的同一事務中)。