清空service broker中的隊列的實現代碼
作者:搏擊的小船
本文我們主要介紹了SQL Server數據庫中清空service broker中的隊列的實現代碼,希望能夠對您有所幫助。
清空service broker中的隊列的實現代碼是本文我們主要要介紹的內容,在SQL Server數據庫操作中,在我們開發service broker應用時候,可能用于測試或者客戶端沒有配置正確等導致服務端隊列存在很多垃圾隊列,不便于我們排查錯誤,我們可以使用SQL腳本來清空服務端這些垃圾數據,接下我們就來介紹這些腳本。
SQL腳本如下:
- USE TestDB
- declare @conversation uniqueidentifier
- while exists (select 1 from sys.transmission_queue )
- begin
- set @conversation = (select top 1 conversation_handle from sys.transmission_queue )
- end conversation @conversation with cleanup
- end
那么客戶端接受到的消息如果沒有處理,也會積攢在客戶端隊列中,其實就相當于許多未讀郵件,我們可以使用以下腳本讀取隊列 ,讀取后隊列自動清空:
- USE TestDB
- DECLARE @RecvReplyMsg NVARCHAR(100) ;
- DECLARE @RecvReplyDlgHandle UNIQUEIDENTIFIER ;
- BEGIN TRANSACTION ;
- WHILE ( 11 = 1 )
- BEGIN
- WAITFOR
- ( RECEIVE TOP(1)
- @RecvReplyDlgHandle = conversation_handle,
- @RecvReplyMsg = message_body
- FROM dbo.Test_TargetQueue
- ), TIMEOUT 1000 ;
- END CONVERSATION @RecvReplyDlgHandle ;
- SELECT @RecvReplyMsg AS ReceivedReplyMsg ;
- END
- COMMIT TRANSACTION ;
以上就是SQL Server數據庫中清空service broker中的隊列的實現代碼,本文就介紹到這里了,希望本次的介紹能夠對您有所幫助。
【編輯推薦】
- 初學SQL Server數據庫的一些常用操作總結
- SQL Server數據庫創建數據倉庫已分區表詳解
- SQL Server與Access數據庫ASP代碼的比較詳解
- SQL Server數據庫中bit字段類型使用時的注意事項
- SQL Server數據庫timestamp數據類型相關知識介紹
責任編輯:趙鵬
來源:
博客園