清空service broker中的隊(duì)列的實(shí)現(xiàn)代碼
作者:搏擊的小船
本文我們主要介紹了SQL Server數(shù)據(jù)庫(kù)中清空service broker中的隊(duì)列的實(shí)現(xiàn)代碼,希望能夠?qū)δ兴鶐椭?/div>
清空service broker中的隊(duì)列的實(shí)現(xiàn)代碼是本文我們主要要介紹的內(nèi)容,在SQL Server數(shù)據(jù)庫(kù)操作中,在我們開(kāi)發(fā)service broker應(yīng)用時(shí)候,可能用于測(cè)試或者客戶(hù)端沒(méi)有配置正確等導(dǎo)致服務(wù)端隊(duì)列存在很多垃圾隊(duì)列,不便于我們排查錯(cuò)誤,我們可以使用SQL腳本來(lái)清空服務(wù)端這些垃圾數(shù)據(jù),接下我們就來(lái)介紹這些腳本。
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
那么客戶(hù)端接受到的消息如果沒(méi)有處理,也會(huì)積攢在客戶(hù)端隊(duì)列中,其實(shí)就相當(dāng)于許多未讀郵件,我們可以使用以下腳本讀取隊(duì)列 ,讀取后隊(duì)列自動(dòng)清空:
- 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數(shù)據(jù)庫(kù)中清空service broker中的隊(duì)列的實(shí)現(xiàn)代碼,本文就介紹到這里了,希望本次的介紹能夠?qū)δ兴鶐椭?/p>
【編輯推薦】
- 初學(xué)SQL Server數(shù)據(jù)庫(kù)的一些常用操作總結(jié)
- SQL Server數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù)已分區(qū)表詳解
- SQL Server與Access數(shù)據(jù)庫(kù)ASP代碼的比較詳解
- SQL Server數(shù)據(jù)庫(kù)中bit字段類(lèi)型使用時(shí)的注意事項(xiàng)
- SQL Server數(shù)據(jù)庫(kù)timestamp數(shù)據(jù)類(lèi)型相關(guān)知識(shí)介紹
責(zé)任編輯:趙鵬
來(lái)源:
博客園


相關(guān)推薦




