SqlServer service broker 分布式系统(赵松桃)跳水 2005 数据库编程
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 数据库编程的更多相关文章
- SQL Server 2005 Service Broker
一.引言 SQL Server 2005 的一个主要成就是可以实现可靠.可扩展且功能完善的数据库应用程序.与 .NET Framework 2.0 公共语言运行库 (CLR) 的集成使开发人员可以将重 ...
- BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息
SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...
- sql server Service Broker 相关查询
sql server Service Broker 相关查询 -- 查看传输队列中的消息 --如果尝试从队列中移除时,列将表明哪里出现了问题 select * from sys.transmissio ...
- SQL问题:未启用当前数据库的 SQL Server Service Broker
数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...
- 基于SQL Server 2008 Service Broker构建企业级消息系统
注:这篇文章是为InfoQ 中文站而写,文章的地址是:http://www.infoq.com/cn/articles/enterprisemessage-sqlserver-servicebroke ...
- Service Broker 消息队列的方式实现数据同步
SQL Server 2008中SQL应用系列--目录索引 导读:本文主要涉及Service Broker的基本概念及建立一个Service Broker应用程序的基本步骤. 一.前言: Servic ...
- 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 ...
- Service Broker应用(2):不同server间的数据传输,包含集群
不同Server之间的数据传输,包含DB使用AlwaysOn 配置脚本: SQL Server Service Broker 跨集群通信 具体的TSQL 脚本语句如下.注意的是TSQL语句是在发送方还 ...
- Service Broker应用(1):简介、同server不同DB间的数据传输
简介:SQL Server Service Broker,以下简称SSB,是一种完全基于MSSQL数据库的数据处理技术,为短时间内处理大量数据提供了一种可靠.稳定.高效的解决方案.一次同步的数据最大可 ...
随机推荐
- HDU 4597 Play Game 2013 ACM-ICPC吉林通化全国邀请赛H题
九野的博客,转载请注明出处: http://blog.csdn.net/acmmmm/article/details/10833941 题意:给定T个测试数据,下面有2副牌,每副n张,每张都有一个分 ...
- Android仿iOS7的UISegmentedControl 分段
效果图: 这里仅仅简单做了两个button的. 首先是两个button的背景: res/drawable/seg_left.xml <?xml version="1.0" e ...
- 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾
原文 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾 php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样.一些人不理解为什么要混淆( ...
- Java引用类型具体解释
JVM 的垃圾回收器对于不同类型的引用有不同的处理方式.java中对于一个对象来说,仅仅要有引用的存在,它就会一直存在于内存中.假设这种对象越来越多,超出了JVM中的内存总数,JVM就会抛出OutO ...
- (二十一)unity4.6学习Ugui中文文档-------交互-Supported Events & Raycasters
大家好,我是孙广东. 转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:mod=guide&view=m ...
- 新浪SAE数据库信息
此账号仅能在SAE平台上使用,不能从外部连接我们建议开发者使用SaeMysql操作数据库 如果您想自己实现数据库相关操作,可以使用以下常量: 用户名 : SAE_MYSQL_USER 密 码 : S ...
- Wix学习整理(7)——在开始菜单中为HelloWorld添加卸载快捷方式
原文:Wix学习整理(7)--在开始菜单中为HelloWorld添加卸载快捷方式 通过前面的几篇随笔,我们已经给我们的HelloWorld提供了填写注册表信息,以及开始菜单快捷方式和桌面快捷方式.这些 ...
- hdu2845(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2845 题意:给你一个n*m的矩阵,每个位置有一定数量的豆子,如果你去map[x][y]位置上的豆子,则 ...
- poj3667(线段树)
题目连接:http://poj.org/problem?id=3667 题意:1 a:询问是不是有连续长度为a的空房间,有的话住进最左边 2 a b:将[a,a+b-1]的房间清空 线段树操作:upd ...
- leetcode -day19 Convert Sorted List to Binary Search Tree
1. Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted ...