亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL Server 2008中Service Broker基礎(chǔ)應(yīng)用(上)

系統(tǒng) 1980 0

SQL Server 2008中SQL應(yīng)用系列--目錄索引

導(dǎo)讀:本文主要涉及Service Broker的基本概念及建立一個(gè)Service Broker應(yīng)用程序的基本步驟。

一、前言

Service Broker為SQL Server提供消息隊(duì)列,這提供了從數(shù)據(jù)庫中發(fā)送異步事務(wù)性消息隊(duì)列的方法。Service Broker消息可以保證以適當(dāng)?shù)捻樞蚧蛟嫉陌l(fā)送順序不重復(fù)地一次性接收。并且因?yàn)閮?nèi)建在SQL Server中,這些消息在數(shù)據(jù)庫發(fā)生故障時(shí)是可以恢復(fù)的,也可以隨數(shù)據(jù)庫一起備份。在SQL Server 2008中,還引入了使用Create Broker Priority命令對會(huì)話設(shè)定優(yōu)先級,可以對重要的或不重要的會(huì)話進(jìn)行優(yōu)先級設(shè)定,以保證消息合理地處理。

本文假定一個(gè)在線數(shù)據(jù)庫BookStore中存儲(chǔ)了一些業(yè)務(wù)訂單。我們使用Service Broker應(yīng)用程序?qū)⑾l(fā)送到另一個(gè)數(shù)據(jù)庫BookDistribution,該數(shù)據(jù)庫是分離的應(yīng)用程序調(diào)用,該應(yīng)用程序控制倉庫入庫和出庫交付, 并返回消息給BookStore。

創(chuàng)建Service Broker應(yīng)用程序大體步驟如下:

1、定義希望應(yīng)用程序執(zhí)行的異步任務(wù)。

2、確定Service Broker的發(fā)起方服務(wù)和目標(biāo)服務(wù)是否創(chuàng)建在同一個(gè)SQL Server實(shí)例中。如果是兩個(gè)實(shí)例,實(shí)例間的通信還需要?jiǎng)?chuàng)建經(jīng)過證書認(rèn)證或NT安全的身份認(rèn)證,并且要?jiǎng)?chuàng)建端點(diǎn)、路由以及對話安全模式。

3、如果沒有啟用,則在多方參與的數(shù)據(jù)庫中使用Alter Database命令設(shè)置Enable_broker以及Truseworthy數(shù)據(jù)庫選項(xiàng)。

4、為所有多方參與的數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫主密鑰。

5、創(chuàng)建希望在服務(wù)之間發(fā)送的消息類型。

6、創(chuàng)建契約(Contract)來定義可以由發(fā)起方發(fā)送的各種消息以及由目標(biāo)發(fā)送的消息類型的種類。

7、同時(shí)在兩方參與的數(shù)據(jù)庫中創(chuàng)建用于保存消息的隊(duì)列。

8、同時(shí)在綁定特定約定到特定隊(duì)列的多方參與的數(shù)據(jù)庫中創(chuàng)建服務(wù)。

二、實(shí)例

下面我們通過一個(gè)示例來實(shí)現(xiàn)以上步驟:

(一)、啟用數(shù)據(jù)庫的Service Broker活動(dòng)

(二)、創(chuàng)建數(shù)據(jù)庫主密鑰

(三)、管理消息類型

使用CREATE MESSAGE TYPE( http://msdn.microsoft.com/en-us/library/ms187744.aspx )命令,

--注意,此處沒有定義消息的內(nèi)容。實(shí)際的消息是消息類型的實(shí)例。

(四)、創(chuàng)建契約(Contract)

使用Create Contract( http://msdn.microsoft.com/en-us/library/ms178528.aspx

--發(fā)起方和目標(biāo)的定義必須相同

(五)、創(chuàng)建隊(duì)列

隊(duì)列用來保存數(shù)據(jù)。使用命令Create queue( http://msdn.microsoft.com/en-us/library/ms190495.aspx

(六)、創(chuàng)建服務(wù)

服務(wù)定義端點(diǎn),然后使用它來將消息隊(duì)列綁定到一個(gè)或多個(gè)契約上。服務(wù)使用隊(duì)列和契約來定義一個(gè)或一組任務(wù)。有點(diǎn)拗口,是不是?

服務(wù)是消息的發(fā)起方和接收方強(qiáng)制約定的規(guī)則,并將消息路由到正確的序列。

使用Create Service( http://msdn.microsoft.com/en-us/library/ms190332.aspx )命令。

(七)、啟動(dòng)對話

對話會(huì)話(dialog conservation)是在服務(wù)之間進(jìn)行消息交換的操作。

使用Begin Dialog Conversation( http://msdn.microsoft.com/en-us/library/ms187377.aspx ) 命令創(chuàng)建新的會(huì)話。使用Send( http://msdn.microsoft.com/en-us/library/ms188407.aspx )來發(fā)送消息。使用End Conversation命令( http://msdn.microsoft.com/en-us/library/ms177521.aspx )結(jié)束會(huì)話。

(八)、查詢隊(duì)列中傳入的消息

查詢結(jié)果:

(九)、檢索并響應(yīng)消息

使用Receive語句( http://msdn.microsoft.com/en-us/library/ms186963.aspx )從隊(duì)列中讀取行(消息),也可以刪除已經(jīng)讀取的消息。Receive的結(jié)果可以填充到常規(guī)表中,也可以在局部變量中執(zhí)行其他操作,或發(fā)送到其他service Broker消息。如果消息是XML數(shù)據(jù)類型的消息,則可以直接借助TSQL的XQuery來操作。

(十)、結(jié)束會(huì)話


三、小結(jié)

本文通過一個(gè)實(shí)例演示了一個(gè)用來發(fā)送圖書訂單消息分發(fā)控制數(shù)據(jù)庫的簡單的消息交換應(yīng)用程序。發(fā)起方發(fā)送圖書訂單,發(fā)回一個(gè)響應(yīng),并在兩個(gè)數(shù)據(jù)庫上使用END Conservation結(jié)束會(huì)話。現(xiàn)實(shí)場景中可以轉(zhuǎn)換為其他消息類型、契約、服務(wù)和隊(duì)列。合理運(yùn)用Service Broker應(yīng)用程序的異步特性可以防止因應(yīng)用程序掛起而導(dǎo)致業(yè)務(wù)系統(tǒng)產(chǎn)生瓶頸。

本文參考:

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

邀月注:本文版權(quán)由邀月和CSDN共同所有,轉(zhuǎn)載請注明出處。
助人等于自助! 3w@live.cn



SQL Server 2008中Service Broker基礎(chǔ)應(yīng)用(上)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 911精品国产91久久久久 | 91精东果冻蜜桃星空麻豆 | 国产首页精品 | 亚洲乱码一区二区三区国产精品 | 在线观看人成午夜影片 | 91视频首页| 久久99国产精品免费观看 | 黑丝毛片| 日韩欧美亚洲每的更新在线 | 欧美一区二区三区不卡片 | 久草在线观看首页 | 成人伊人 | 国产三级做爰在线观看∵ | 夜夜操国产 | 四虎影视入口 | 亚洲欧美精品天堂久久综合一区 | 国产香蕉精品视频 | 日本一级淫一片免费 | 思99热精品久久只有精品 | 久久国产精品广西柳州门 | 欧美成人免费在线 | 99久久这里只精品国产免费 | 黄a毛片 | 天天摸天天干天天操 | 曰本一级毛片 | 国产高清国内精品福利色噜噜 | 性生大片一级毛片免费观看 | 国产成人综合精品一区 | 一级毛片免费在线播放 | 国产免费人视频在线观看免费 | 一区二区亚洲视频 | 国产成人久久精品二区三区牛 | 国产精品欧美亚洲韩国日本 | 亚洲精品第四页中文字幕 | 国产综合久久一区二区三区 | 久久青青草视频 | 四虎网站1515hh四虎 | 久久精品国产主播一区二区 | 免费一级特黄欧美大片久久网 | 黄毛片免费 | 羞羞色院91 |