SQL Server 2008中SQL应用系列--目录索引
导读:本文主要涉及Service Broker的基本概念及建立一个Service Broker应用程序的基本步骤。
一、前言
:
Service Broker为SQL Server提供消息队列,这提供了从数据库中发送异步事务性消息队列的方法。Service
Broker消息可以保证以适当的顺序或原始的发送顺序不重复地一次性接收。并且因为内建在SQL
Server中,这些消息在数据库发生故障时是可以恢复的,也可以随数据库一起备份。在SQL Server 2008中,还引入了使用Create Broker
Priority命令对会话设定优先级,可以对重要的或不重要的会话进行优先级设定,以保证消息合理地处理。
本文假定一个在线数据库BookStore中存储了一些业务订单。我们使用Service
Broker应用程序将消息发送到另一个数据库BookDistribution,该数据库是分离的应用程序调用,该应用程序控制仓库入库和出库交付,
并返回消息给BookStore。
创建Service Broker应用程序大体步骤如下:
1、定义希望应用程序执行的异步任务。
2、确定Service Broker的发起方服务和目标服务是否创建在同一个SQL
Server实例中。如果是两个实例,实例间的通信还需要创建经过证书认证或NT安全的身份认证,并且要创建端点、路由以及对话安全模式。
3、如果没有启用,则在多方参与的数据库中使用Alter Database命令设置Enable_broker以及Truseworthy数据库选项。
4、为所有多方参与的数据库创建数据库主密钥。
5、创建希望在服务之间发送的消息类型。
6、创建契约(Contract)来定义可以由发起方发送的各种消息以及由目标发送的消息类型的种类。
7、同时在两方参与的数据库中创建用于保存消息的队列。
8、同时在绑定特定约定到特定队列的多方参与的数据库中创建服务。
二、实例
下面我们通过一个示例来实现以上步骤:
(一)、启用数据库的Service Broker活动
(二)、创建数据库主密钥
(三)、管理消息类型
使用CREATE MESSAGE TYPE(http://msdn.microsoft.com/en-us/library/ms187744.aspx
)命令,
--注意,此处没有定义消息的内容。实际的消息是消息类型的实例。
(四)、创建契约(Contract)
使用Create Contract(http://msdn.microsoft.com/en-us/library/ms178528.aspx
)
--发起方和目标的定义必须相同
(五)、创建队列
队列用来保存数据。使用命令Create queue(http://msdn.microsoft.com/en-us/library/ms190495.aspx
)
(六)、创建服务
服务定义端点,然后使用它来将消息队列绑定到一个或多个契约上。服务使用队列和契约来定义一个或一组任务。有点拗口,是不是?
服务是消息的发起方和接收方强制约定的规则,并将消息路由到正确的序列。
使用Create Service(http://msdn.microsoft.com/en-us/library/ms190332.aspx
)命令。
(七)、启动对话
对话会话(dialog conservation)是在服务之间进行消息交换的操作。
使用Begin Dialog Conversation(http://msdn.microsoft.com/en-us/library/ms187377.aspx
)
命令创建新的会话。使用Send(http://msdn.microsoft.com/en-us/library/ms188407.aspx
)来发送消息。使用End
Conversation命令(http://msdn.microsoft.com/en-us/library/ms177521.aspx
)结束会话。
(八)、查询队列中传入的消息
查询结果:
(九)、检索并响应消息
使用Receive语句(http://msdn.microsoft.com/en-us/library/ms186963.aspx
)从队列中读取行(消息),也可以删除已经读取的消息。Receive的结果可以填充到常规表中,也可以在局部变量中执行其他操作,或发送到其他service
Broker消息。如果消息是XML数据类型的消息,则可以直接借助TSQL的XQuery来操作。
(十)、结束会话
三、小结
本文通过一个实例演示了一个用来发送图书订单消息分发控制数据库的简单的消息交换应用程序。发起方发送图书订单,发回一个响应,并在两个数据库上使用END
Conservation结束会话。现实场景中可以转换为其他消息类型、契约、服务和队列。合理运用Service
Broker应用程序的异步特性可以防止因应用程序挂起而导致业务系统产生瓶颈。
本文参考:
1、SQL Server 2005 Service Broker 初探
http://msdn.microsoft.com/zh-cn/library/ms345108%28v=sql.90%29.aspx
2、SQL Server 2008 Transact-SQL Recipes: A Problem-Solution Approach
http://www.amazon.com/Server-2008-Transact-SQL-Recipes-Problem-Solution/dp/1590599802
邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助!
3w@live.cn
分享到:
相关推荐
SQL Server 2008中Service Broker基础应用 实例
Pro SQL Server 2008 Service Broker
Pro SQL Server 2008 Service Broker 国外数据库高级教程 PDF格式 英文版
下面是一份关于 SQL Server Service Broker 基础知识介绍的PPT 文档,可以下载。 演讲者:EntLib.com MSN & Email:entlib@hotmail.com 如有任何技术问题或者培训需求,欢迎和我们联系或者留言。
Service Broker的應用(上)---SQL Server 2008
有时候会遇到这样的问题:未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker。
SQL Server 2005 Service Broker 初探
内含ppt,视频,文档,示例!!!!!!!
Service Broker 是 Microsoft SQL Server 2005/2008/2012 中的新技术,它可帮助数据库开发人员生成安全、可靠且可伸缩的应用程序。本文档由 EntLib.com team 编写。
attempt to cover the main areas of SQL Server 2008 Administration. Inside this book, you will find detailed information about how to maintain and manage your SQL Server 2008 installation. Most of the ...
SQL Server 数据库技术---基础篇(T-SQL基础、数据库几本操作、SQL Server 2008新特性)、数据库安全(SQL Server 2008 安全数据文件安全与灾难恢复、 复制)、SQL开发(数据库设计、SQL Server与CLR集成、在SQL ...
另一个重要功能是 SQL Server Service Broker,它为数据库应用程序增加了可靠、可扩展、分布式异步功能。 为什么要编写异步排队操作? 在开发 SQL Server 2005 时,我们与成功开发过大型可扩展数据库应用程序的...
SQL.Server.2005.Service.Broker
另外,《SQLServer 2008 DBA入门经典》还介绍了一整套GI工具,包括SQL Server Integration Services、Reporting Services、Analysis Services和Service Broker。 不管您是否否有经验,通过《SQL Server 2008 DBA...
另外,《SQLServer 2008 DBA入门经典》还介绍了一整套GI工具,包括SQL Server Integration Services、Reporting Services、Analysis Services和Service Broker。 不管您是否否有经验,通过《SQL Server 2008 DBA...
另外,《SQLServer 2008 DBA入门经典》还介绍了一整套GI工具,包括SQL Server Integration Services、Reporting Services、Analysis Services和Service Broker。 不管您是否否有经验,通过《SQL Server 2008 DBA...
SQL Server 2005 核心技术 SQL Server 2005 服务简介 SSAS(Analysis Service)与 商业智能(BI) 数据挖掘算法简介(Data Mining) 联机数据分析技术(OLAP) SSIS (Integration Service)与商业智能(BI) SSRS...
sqlserver 2005 ServiceBroker Sample
由于未在 Windows 中完全配置 Microsoft 分布式事务处理协调器 (MS DTC),因此,应用程序可能无法在分布式事务中登记 SQL Server Express 资源。此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储...
SQL和CLR用户自定义函数、存储过程、触发器、事务和新的错误处理结构、应用并发模型支持并发用户、使用Service Broker来控制数据库应用程序中的异步处理等。 内容简介 本书是Inside Microsoft SQL Server 2005系列...