SQL2000 备份的数据库文件恢复到sql2005中,创建broker ,结果发送消息后,队列中发现没有消息。

winter_leaf_wei winter_leaf_wei 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
SQL2000 备份的数据库文件恢复到sql2005中,创建broker ,结果发送消息后,队列中发现没有消息。
发送消息前,我已经修改数据库的运行兼容级别为sql2005 模式。
希望专家告诉原因。
这是我的脚本

USE master

ALTER DATABASE test SET ENABLE_BROKER
go



-------------------------------------------------------------------------------
-- 1 生成队列
create queue dbo.statQueue

go




--------------------------------------------------------------------------------
--5 创建消息 和服务端口
CREATE MESSAGE TYPE MSGT_counter_trigger
VALIDATION = WELL_FORMED_XML
GO

-- 创建约定,只需要发送消息
CREATE CONTRACT CNT_counter_trigger(

MSGT_counter_trigger SENT BY INITIATOR)
GO
--- 创建服务端口

CREATE SERVICE SRV_counter_trigger

ON QUEUE dbo.statQueue(

CNT_counter_trigger)

GO

--------------------------------------------------------------------
-- 6 添加 发送消息代理存储过程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
create PROCEDURE [dbo].[async_SendCountMsg]
@message [nvarchar](max)
AS
BEGIN

SET NOCOUNT ON;
DECLARE @handle uniqueidentifier
begin tran

BEGIN DIALOG CONVERSATION @handle

FROM SERVICE [SRV_counter_trigger]

TO SERVICE N'SRV_counter_trigger'

ON CONTRACT CNT_counter_trigger

WITH

ENCRYPTION = OFF;

SEND

ON CONVERSATION @handle

MESSAGE TYPE MSGT_counter_trigger(@message);

-- 消息发出即可, 不需要回复, 因此发出后即可结束会话

END CONVERSATION @handle

commit tran
END
...全文
评论 10
收藏 已收藏
分享
返回顶部
winter_leaf_wei
疑难问题 22,298 成员 121,727 内容