SQL Server 2008中Service Broker基础应用(上)

  导读:本文主要涉及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活动

-- Enabling Databases for Service Broker Activity

USE master
GO
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'BookStore')
CREATE DATABASE BookStore
GO
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'BookDistribution')
CREATE DATABASE BookDistribution
GO
ALTER DATABASE BookStore SET ENABLE_BROKER
GO
ALTER DATABASE BookStore SET TRUSTWORTHY ON
GO
ALTER DATABASE BookDistribution SET ENABLE_BROKER
GO
ALTER DATABASE BookDistribution SET TRUSTWORTHY ON

it知识库SQL Server 2008中Service Broker基础应用(上),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。