|
導讀:本文主要涉及Service Broker的基本概念及建立一個Service Broker應用程序的基本步驟。
一、前言:
Service Broker為SQL Server提供消息隊列,這提供了從數(shù)據(jù)庫中發(fā)送異步事務性消息隊列的方法。Service Broker消息可以保證以適當?shù)捻樞蚧蛟嫉陌l(fā)送順序不重復地一次性接收。并且因為內(nèi)建在SQL Server中,這些消息在數(shù)據(jù)庫發(fā)生故障時是可以恢復的,也可以隨數(shù)據(jù)庫一起備份。在SQL Server 2008中,還引入了使用Create Broker Priority命令對會話設定優(yōu)先級,可以對重要的或不重要的會話進行優(yōu)先級設定,以保證消息合理地處理。
本文假定一個在線數(shù)據(jù)庫BookStore中存儲了一些業(yè)務訂單。我們使用Service Broker應用程序?qū)⑾l(fā)送到另一個數(shù)據(jù)庫BookDistribution,該數(shù)據(jù)庫是分離的應用程序調(diào)用,該應用程序控制倉庫入庫和出庫交付, 并返回消息給BookStore。
創(chuàng)建Service Broker應用程序大體步驟如下:
1、定義希望應用程序執(zhí)行的異步任務。
2、確定Service Broker的發(fā)起方服務和目標服務是否創(chuàng)建在同一個SQL Server實例中。如果是兩個實例,實例間的通信還需要創(chuàng)建經(jīng)過證書認證或NT安全的身份認證,并且要創(chuàng)建端點、路由以及對話安全模式。
3、如果沒有啟用,則在多方參與的數(shù)據(jù)庫中使用Alter Database命令設置Enable_broker以及Truseworthy數(shù)據(jù)庫選項。
4、為所有多方參與的數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫主密鑰。
5、創(chuàng)建希望在服務之間發(fā)送的消息類型。
6、創(chuàng)建契約(Contract)來定義可以由發(fā)起方發(fā)送的各種消息以及由目標發(fā)送的消息類型的種類。
7、同時在兩方參與的數(shù)據(jù)庫中創(chuàng)建用于保存消息的隊列。
8、同時在綁定特定約定到特定隊列的多方參與的數(shù)據(jù)庫中創(chuàng)建服務。
二、實例
下面我們通過一個示例來實現(xiàn)以上步驟:
(一)、啟用數(shù)據(jù)庫的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基礎應用(上),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。