在目标队列中排队消息时发生异常。错误:15404,州

时间:2017-06-11 05:18:38

标签: sql-server service-broker

我是Service Broker的新手。我在这里看到了一个简单的例子:

CREATE DATABASE ServiceBrokerTest
GO
USE ServiceBrokerTest
GO

-- Enable Service Broker
ALTER DATABASE ServiceBrokerTest SET ENABLE_BROKER
GO

-- Create Message Type
CREATE MESSAGE TYPE SBMessage
VALIDATION = NONE
GO

-- Create Contract
CREATE CONTRACT SBContract
(SBMessage SENT BY INITIATOR)
GO

-- Create Send Queue
CREATE QUEUE SBSendQueue
GO

-- Create Receive Queue
CREATE QUEUE SBReceiveQueue
GO

-- Create Send Service on Send Queue
CREATE SERVICE SBSendService
ON QUEUE SBSendQueue (SBContract)
GO

-- Create Receive Service on Receive Queue
CREATE SERVICE SBReceiveService
ON QUEUE SBReceiveQueue (SBContract)
GO

-- Begin Dialog using service on contract
DECLARE @SBDialog uniqueidentifier
DECLARE @Message NVARCHAR(128)
BEGIN DIALOG CONVERSATION @SBDialog
FROM SERVICE SBSendService
TO SERVICE 'SBReceiveService'
ON CONTRACT SBContract
WITH ENCRYPTION = OFF

-- Send messages on Dialog
SET @Message = N'Very First Message';
SEND ON CONVERSATION @SBDialog
MESSAGE TYPE SBMessage (@Message)

SET @Message = N'Second Message';
SEND ON CONVERSATION @SBDialog
MESSAGE TYPE SBMessage (@Message)

SET @Message = N'Third Message';
SEND ON CONVERSATION @SBDialog
MESSAGE TYPE SBMessage (@Message)
GO

-- View messages from Receive Queue
SELECT CONVERT(NVARCHAR(MAX), message_body) AS Message
FROM SBReceiveQueue
GO

-- Receive messages from Receive Queue
RECEIVE TOP(1) CONVERT(NVARCHAR(MAX), message_body) AS Message
FROM SBReceiveQueue
GO

-- Receive messages from Receive Queue
RECEIVE CONVERT(NVARCHAR(MAX), message_body) AS Message
FROM SBReceiveQueue
GO

此链接example link但是当我运行查询时,它会返回零记录 - 为什么?

enter image description here

1 个答案:

答案 0 :(得分:0)

我最终执行此代码并且可以正常运行

sp_changedbowner 'sa'