Copy Code code as follows:
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
Then the message received by the client, if not processed, will accumulate in the client queue, in fact, the equivalent of many unread messages, we can use the following script read the queue, read the queue automatically emptied:
Copy Code code as follows:
use TestDB
DECLARE @RecvReplyMsg NVARCHAR (100);
DECLARE @RecvReplyDlgHandle uniqueidentifier;
BEGIN TRANSACTION;
while (1 = 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;