我正在学习如何使用SQL Server 2008 R2的Service Broker.在完成单个数据库中的完成对话教程时.在第1课之后,我成功创建了消息类型,合同,队列和服务.在第2课之后,我可能已经发送了这条消息.但是,在尝试接收消息时,我获取的是NULL ReceivedRequestMsg而不是发送的内容.

在查看时sys.transmission_queue,transmission_status消息说:

在目标队列中排队消息时发生异常.错误:15517,状态:1.无法作为数据库主体执行,因为主体"dbo"不存在,此类主体不能被模拟,或者您没有权限.

我已经使用Windows登录安装了SQL Server Mycomp\Petr.我也在使用该登录课程.

你能猜出是什么问题吗?我应该检查和设置什么才能使其正常工作?

编辑2012/07/16:为了帮助重现问题,这就是我所做的.如果您按照下一步操作,是否可以重现错误?

首先,我使用的是Windows 7 Enterprise SP1和Microsoft SQL Server 2008 R2,开发人员版,64位(版本10.50.2500.0,根目录位于C:\ Program Files\Microsoft SQL Server\MSSQL10_50.SQL_PRIKRYL05\MSSQL) .

按照教程建议,我下载了AdventureWorks2008R2_Data.mdf示例数据库,并将其复制到C:\ Program Files\Microsoft SQL Server\MSSQL10_50.SQL_PRIKRYL05\MSSQL\DATA\AdventureWorks2008R2_Data.mdf

必须以"管理员"身份启动SQL Server Management Studio才能以后附加数据.然后我连接了SQL Server.

右键单击Databases,上下文菜单Attach ...,按钮Add ...,指向AdventureWorks2008R2_Data.mdf + OK.然后从下面的网格中选择AdventureWorks2008R2_Log.ldf(报告为未找到)并按下删除...按钮.按OK后,附加了数据库并自动创建了AdventureWorks2008R2_log.LDF.

以下查询用于查看"Service Broker enabled/disabled",以及启用(Service Broker已成功启用数据库):

USE master;

GO

SELECT name, is_broker_enabled FROM sys.databases;

GO

ALTER DATABASE AdventureWorks2008R2

SET ENABLE_BROKER

WITH ROLLBACK IMMEDIATE;

GO

SELECT name, is_broker_enabled FROM sys.databases;

GO

然后,按照本教程,执行以下查询以创建消息类型,合同,队列和服务:

USE AdventureWorks2008R2;

GO

CREATE MESSAGE TYPE

[//AWDB/1DBSample/RequestMessage]

VALIDATION = WELL_FORMED_XML;

CREATE MESSAGE TYPE

[//AWDB/1DBSample/ReplyMessage]

VALIDATION = WELL_FORMED_XML;

GO

CREATE CONTRACT [//AWDB/1DBSample/SampleContract]

([//AWDB/1DBSample/RequestMessage]

SENT BY INITIATOR,

[//AWDB/1DBSample/ReplyMessage]

SENT BY TARGET

);

GO

CREATE QUEUE TargetQueue1DB;

CREATE SERVICE

[//AWDB/1DBSample/TargetService]

ON QUEUE TargetQueue1DB

([//AWDB/1DBSample/SampleContract]);

GO

CREATE QUEUE InitiatorQueue1DB;

CREATE SERVICE

[//AWDB/1DBSample/InitiatorService]

ON QUEUE InitiatorQueue1DB;

GO

到现在为止还挺好.

然后使用以下查询来查看队列(使用时现在为空):

USE AdventureWorks2008R2;

GO

SELECT * FROM InitiatorQueue1DB WITH (NOLOCK);

SELECT * FROM TargetQueue1DB WITH (NOLOCK);

SELECT * FROM sys.transmission_queue;

GO

发送消息时会出现问题:

BEGIN TRANSACTION;

BEGIN DIALOG @InitDlgHandle

FROM SERVICE

[//AWDB/1DBSample/InitiatorService]

TO SERVICE

N'//AWDB/1DBSample/TargetService'

ON CONTRACT

[//AWDB/1DBSample/SampleContract]

WITH

ENCRYPTION = OFF;

SELECT @RequestMsg =

N'Message for Target service.';

SEND ON CONVERSATION @InitDlgHandle

MESSAGE TYPE

[//AWDB/1DBSample/RequestMessage]

(@RequestMsg);

SELECT @RequestMsg AS SentRequestMsg;

COMMIT TRANSACTION;

GO

当在队列看时,Initiator...与Target...队列是空的,并且可见于所发送的消息sys.transmission_queue经由报告上述的错误transmission_status.

sql server 服务器之间传递消息,SQL Server 2008 Service Broker教程 - 无法接收消息(transmission_status中的异常)...相关推荐

  1. [转]基于SQL Server 2008 Service Broker构建企业级消息系统

    http://www.infoq.com/cn/articles/enterprisemessage-sqlserver-servicebroker 1.引言 Microsoft 在SQL Serve ...

  2. ftp和服务器之间传递ftp文件时,使用的连接时,ftp服务器之间传递文件

    ftp服务器之间传递文件 内容精选 换一换 打开FTP服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹.浏览器设置了FTP防火墙.以设置IE浏览器为例.打开IE浏览器菜单"工具 &g ...

  3. windows多个服务器之间共享文件夹,windows server 2008 R2 部署NFS,实现多台服务器间、客户端间的共享目录。...

    如何通过Windows Server 2008 R2建立NFS存储服务? 通过Windows Server 2008 R2,我们可以很容易地将其作为一台NFS存储服务器,得到一个NFS软存储,轻松解决 ...

  4. RDS SQL Server死锁(Deadlock)系列之四利用Service Broker事件通知捕获死锁

    问题引入 在前面三篇文章,我们分别谈到了使用DBCC命令捕获死锁:使用Profiler界面跟踪Deadlock Graph事件捕获死锁和使用脚本自动部署Profiler Trace捕获死锁.这篇文章介 ...

  5. 【SQL】服务器环境下的SQL

    一.大型数据库的三层体系结构 web服务器:比如在淘宝页面上,输入"牛肉干",就是web服务器来处理,提交给应用服务器. 应用服务器:在获取到"牛肉干"这个请求 ...

  6. Android客户端与服务器之间传递json数据

    在服务器与客户端之间通信,json数据是一种常用格式,本文主要在服务器端构建数据,在客户端接收显示,并且在listview上显示出来 服务器端的构建 简单的javabean与返回结果函数与插入函数略过 ...

  7. sql显示服务器连接不上,sql服务器连接不上

    sql服务器连接不上 内容精选 换一换 本章节适用于MRS 3.x之前版本.Loader支持以下多种连接,每种连接的配置介绍可根据本章节内容了解.obs-connectorgeneric-jdbc-c ...

  8. SQL Server服务器名称与默认实例名不一致的修复方法

    SQL Server服务器名称与默认实例名不一致的修复方法 分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报 sql ser ...

  9. SQL Server 2005 Service Broker 初探

    发布日期 : 11/4/2004| 更新日期 : 11/4/2004 Roger Wolter 适用于: Microsoft SQL Server 2005 Transact SQL (T-SQL) ...

最新文章

  1. Bengio实验室推出开源AI药物研发平台,唐建领队、清北上交学生参与开发
  2. Servlet 生命周期介绍
  3. html静态页面到jsp文件css错误
  4. 【OpenGL】游戏编程常用TGA图像格式详解以及加载纹理编程实现
  5. 一步步实现SDDC-逻辑交换与逻辑路由
  6. 【虚拟机ubuntu设置ssh】ssh连不上问题解决方法
  7. javascript详解函数原型对象prototype与constructor
  8. Java-马士兵设计模式学习笔记-策略模式-模拟Comparable接口
  9. 浏览器 刷新页面后回到顶部_当你在浏览器中,忘记了曾经的登录密码怎么办......
  10. 使用python实现日志功能
  11. python 保存图片_python 输出文档到world
  12. 如何写网站建设策划书
  13. 网站被ddos攻击了怎么办?网站正在被ddos攻击怎么解决
  14. ecshop手机支付宝支付篡改金额BUG
  15. 单机游戏数据库探讨(MySQL嵌入式服务器的使用)(未完)
  16. 解析区块链游戏与GameFi的发展历程
  17. pandas 生成笛卡尔集
  18. 中学学籍管理系统数据库课程设计,限于篇幅只能采取截图方式上传,原文件在我资源中有所展示。
  19. 硬件描述语言VHDL
  20. CSS中的标准盒子模型和怪异盒子模型

热门文章

  1. webpack 配置
  2. 自己定义九宫格手势解锁
  3. Solidworks如何绘制装饰螺纹线
  4. jetty for linux 启用日志
  5. 深度模拟java动态代理实现机制系类之三
  6. 一个可行的绑定下拉列表的方法(bind dropdownlist)
  7. solaris 中挂载usb移动硬盘
  8. 我的QT4.5编译流水帐(转帖)
  9. Quartz.net通过配置文件来完成作业调度
  10. 【转】【centos】启动网卡报错(Failed to start LSB: Bring up/down networking )解决办法总结...