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数据库的数据处理技术,为短时间内处理大量数据提供了一种可靠.稳定.高效的解决方案.一次同步的数据最大可 ...
随机推荐
- 以JTextPanel为例Swing的鼠标事件详解
如下界面可以通过该界面研究一下Swing的鼠标事件: 图中用红粗线圈起来的为JtextPanel,该Panel添加了鼠标事件监听器,鼠标事件监听器有三种,分别为MouseWheelListener,M ...
- 斯坦福ML公开课笔记15—隐含语义索引、神秘值分解、独立成分分析
斯坦福ML公开课笔记15 我们在上一篇笔记中讲到了PCA(主成分分析). PCA是一种直接的降维方法.通过求解特征值与特征向量,并选取特征值较大的一些特征向量来达到降维的效果. 本文继续PCA的话题, ...
- 西南民大oj(两园交求面积)
西南民大oj:http://www.swunacm.com/acmhome/welcome.do?method=index 我的几何不可能那么可爱 时间限制(普通/Java) : 1000 MS/ 3 ...
- BaiduMap_SDK_DEMO_3.0.0_for_Xamarin.Android_by_imknown
2.4.2 已稳定, 同一时候已经放置到分支/Release 2.4.2了. 3.0.0 已开发完毕, 可是不推荐大家用于项目中, 请观望或者自己进一步调试. 个人感觉尽管3.0.0简化了开发, 可是 ...
- Python 类继承,__bases__, __mro__, super
Python是面向对象的编程语言,也支持类继承. >>> class Base: ... pass ... >>> class Derived(Base): ... ...
- 事务的使用示例及WinForm实现中的若干问题
--事务的使用示例 create database MyDB go use MyDB create table account ( Id int identity primary key, balan ...
- nutch搏斗之一
nutch搏斗之一 问题描述: 在用nutch1.0做generate 包括5亿url的crawldb时,它默认按照64M分块,分成777个map task,在运行的后期出现 Could not fi ...
- spring 普通类获取四大作用域request、applicationContext、session、page
几乎所有web应用容器都提供了四种类似Map的结构:application session request page,Jsp或者Servlet通过向着这四个对象放入数据,从而实现Jsp和Servlet ...
- 数字证书及CA的扫盲介绍(转)
★ 先说一个通俗的例子 考虑到证书体系的相关知识比较枯燥.晦涩.俺先拿一个通俗的例子来说事儿. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 ...
- GEF的MVC体系结构
摘要: 本文首先介绍了标准的 MVC 体系构架,同时也介绍了最常见的一类 MVC 模式的变种.之后,文章重点介绍了 MVC 结构在 gef 框架中的体现与应用,以及 gef 是如何综合利用工厂模式.命 ...