|
導讀:本文主要涉及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基礎應用(上),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。