1.创建一个测试数据库

create database ServerbrokerTest

on primary(

name=ServerbrokerTest_data,

filename='C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\ServerbrokerTest_data.mdf',

size=5,

maxsize=unlimited,

filegrowth=1

)

Log on

(

name=student_log,

filename='C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\ServerbrokerTest_log.ldf',

size=1,

maxsize=20,

filegrowth=3

)

2.激活数据库的broker功能

SELECT IS_BROKER_ENABLED FROM MASTER.SYS.DATABASES

WHERE NAME='ServerbrokerTest';

成功:,说明已经激活

若不成功: ALTER DATABASE DB_BROKERTEST SET ENABLE_BROKER  激活broker功能 将其激活

3.定义消息类型

--定义消息类型,必须是格式正确的xml

USE ServerbrokerTest

GO

CREATE MESSAGE TYPE 

MessageTypeEMail --消息类型名

VALIDATION = WELL_FORMED_XML  --验证为标准xml格式

4.定义约定  定义约定名称为 ContractEMail 约定的全部者为dbo. SENT BY 用户指定哪个端点能够发送所指示的消息类型的消息.约定将记录服务能够用来拥有特定会话的消息.每一个会话都有两个端点:发起方端点(启动会话的服务)和目标端点(发起方要联系的服务).ANY代表随意.

--定义约定(消息类型和传递方向)

USE ServerbrokerTest

GO

CREATE CONTRACT ContractEMail

AUTHORIZATION dbo

(MessageTypeEMail SENT BY ANY)

5.定义队列

--定义队列  消息发出队列

USE ServerbrokerTest

GO

CREATE QUEUE dbo.QueueSENDEMail

--定义队列  接收消息的队列

USE ServerbrokerTest

GO

CREATE QUEUE dbo.QueueRECEIVEEMail

6.定义服务

--定义服务,该服务为消息发出服务,使用消息发出队列

USE ServerbrokerTest

GO

CREATE SERVICE ServiceSendEMail

AUTHORIZATION dbo ON QUEUE dbo.QueueSENDEMail

--定义服务。该服务为消息接收服务,使用接收消息队列

USE ServerbrokerTest

GO

CREATE SERVICE ServiceReceiveEMail

AUTHORIZATION dbo ON QUEUE dbo.QueueRECEIVEEMail

7.定义路由

--因为这里使用的是同一个SqlServer 实例上的同一个数据库,所以能够使用默认的路由

USE ServerbrokerTest

GO

CREATE ROUTE AutoCreatedLocal

AUTHORIZATION dbo WITH ADDRESS = N'LOCAL'

8.编写主程序

在定义好上述Service Broker 对象后,我们能够编写一段SQL代码来完毕消息异步传送和接收.

--编写主程序

--在定义好上述Service Broker 对象后,我们能够编写一段SQL代码来完毕消息异步传送和接收

--开启事务

USE ServerbrokerTest

GO

BEGIN TRAN

--定义会话变量

DECLARE @dialogid uniqueidentifier

DECLARE @emailmessage XML

--启动会话

BEGIN  DIALOG CONVERSATION @dialogid

 FROM SERVICE ServiceSendEMail

 TO SERVICE 'ServiceReceiveEMail'

 ON CONTRACT ContractEMail

 WITH ENCRYPTION =OFF  --加密功能关闭

 --定义消息变量及内容

 

 SET @emailmessage=N'<emailcontent>欢迎使用Service Broker </emailcontent>';

 

 SEND ON CONVERSATION @dialogid

 MESSAGE TYPE MessageTypeEMail

 (@emailmessage);

--结束回话

END CONVERSATION @dialogid

--提交事务

COMMIT TRAN

--查询队列的内容]

 

SELECT * FROM   dbo.QueueSENDEMail

SELECT * FROM   dbo.QueueRECEIVEEMail

SqlServer2012查询队列为空,我不知道该怎么办?

版权声明:本文博主原创文章,博客,未经同意不得转载。

SqlServer service broker 分布式系统(赵松桃)跳水 2005 数据库编程的更多相关文章

  1. SQL Server 2005 Service Broker

    一.引言 SQL Server 2005 的一个主要成就是可以实现可靠.可扩展且功能完善的数据库应用程序.与 .NET Framework 2.0 公共语言运行库 (CLR) 的集成使开发人员可以将重 ...

  2. BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息

    SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...

  3. sql server Service Broker 相关查询

    sql server Service Broker 相关查询 -- 查看传输队列中的消息 --如果尝试从队列中移除时,列将表明哪里出现了问题 select * from sys.transmissio ...

  4. SQL问题:未启用当前数据库的 SQL Server Service Broker

    数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...

  5. 基于SQL Server 2008 Service Broker构建企业级消息系统

    注:这篇文章是为InfoQ 中文站而写,文章的地址是:http://www.infoq.com/cn/articles/enterprisemessage-sqlserver-servicebroke ...

  6. Service Broker 消息队列的方式实现数据同步

    SQL Server 2008中SQL应用系列--目录索引 导读:本文主要涉及Service Broker的基本概念及建立一个Service Broker应用程序的基本步骤. 一.前言: Servic ...

  7. The SQL Server Service Broker for the current database is not enabled

    把一个数据恢复至另一个服务器上,出现了一个异常: The SQL Server Service Broker for the current database is not enabled, and ...

  8. Service Broker应用(2):不同server间的数据传输,包含集群

    不同Server之间的数据传输,包含DB使用AlwaysOn 配置脚本: SQL Server Service Broker 跨集群通信 具体的TSQL 脚本语句如下.注意的是TSQL语句是在发送方还 ...

  9. Service Broker应用(1):简介、同server不同DB间的数据传输

    简介:SQL Server Service Broker,以下简称SSB,是一种完全基于MSSQL数据库的数据处理技术,为短时间内处理大量数据提供了一种可靠.稳定.高效的解决方案.一次同步的数据最大可 ...

随机推荐

  1. hdu1116--解题报告--初步了解欧拉回路

    由题目意思..我们只要把n个字符串的首尾字母看作是点,这个字符串看着边来处理就可以啦...将题目的案例图形化如下: 那么接着就是欧拉路径和欧拉回路判断,我们这里用并査集来判断图是不是连通的,然后根据有 ...

  2. 【图像处理】Bilinear Image Scaling

    Bilinear image scaling is about the same as nearest neighbor image scaling except with interpolation ...

  3. UVa 10286 - Trouble with a Pentagon

    题目:如图在正五边形中画一个正方形,一直正五边形边长,求正方形边长. 分析:计算几何,解析几何.求出边长的比例关系带入求解就可以. 设正五边形边长为1,在顶点建立直角坐标系,则左上角坐标为:B(-co ...

  4. hdu 1063 Exponentiation 大数

    Problem Description Problems involving the computation of exact values of very large magnitude and p ...

  5. 做SEO所要具备的四种能力

    1,不为失败找借口         既然我们选择了做SEO,那么发生网站被降权.被K是常常的事.当这样的情况发生时,大部分站长首先将责任推给百度机制,由于百度更新算法调整遭降权,不是由于他们的优化没有 ...

  6. python语言学习6——python基础

    Python是一种计算机编程语言. 以#开头的语句是注释,注释是给人看的,可以是任意内容 其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块. Python程序是大小写敏感的,如果写错 ...

  7. 苹果iOS手机系统诊断功能是后门吗?

    7月20日,美国知名苹果iOS手机系统侦破专家扎德尔斯基在2014年世界黑客大会(HOPE/X)用幻灯片讲演揭露了苹果手机存在系统级"后门". 为此,7月23日.苹果公司马上做出回 ...

  8. 读懂Java中的Socket编程(转)

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  9. hdu3006(状态压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3006 题意:给定一些集合,求这些集合所能组合的集合个数. 分析:这题就是用一个二进制数保存一个集合的元 ...

  10. 我和小美的撸码日记(3)之中的一个句话搞定MVC表单页数据绑定与提交

    另外献上在<线体验Demo地址>希望大家也能从中得到一些启示. 地址:http://121.40.148.178:8080/ . username:guest,password:12345 ...