--建立要使用的資料庫
create
database helloworlddb
gouse helloworlddb
go--
建立要使用的兩種訊息型別。我們要使用的訊息將是
--字串而不是 xml - 因此無需進行驗證
create message type [
helloworldrequest
] validation = none
create message type [
helloworldresponse
] validation = none
--建立乙個限制此對話方塊中訊息型別
--的規範。請求由對話方塊的初始化程式發出
--響應訊息由對話方塊目標傳送。
create contract [
helloworldcontract](
[helloworldrequest
] sent by initiator,
[helloworldresponse
] sent by target)--
建立對話方塊在其間通訊的兩個佇列。a
--對話方塊請求兩個佇列。
create queue [
helloworldtargetqueue
]create queue [
helloworldinitiatorqueue]--
建立命名對話方塊端點的服務。服務會將
--會話端點連線到佇列。
create service [
helloworldrequestservice
]on queue [
helloworldtargetqueue](
[helloworldcontract])
create service [
helloworldresponseservice
]on queue [
helloworldinitiatorqueue]go
use helloworlddb
goset nocount on
declare
@conversationhandle
uniqueidentifier
begin
transaction
--開始 hello world 服務的對話
begin dialog @conversationhandle
from service [
helloworldresponseservice
]to service '
helloworldrequestservice
'on contract [
helloworldcontract
]with encryption =
off, lifetime =
600;
--傳送訊息
send on conversation @conversationhandle
message type [
helloworldrequest
] (n'
hello world
')commit
use helloworlddb
go--
檢查目標佇列以確認訊息已送達
select
*from
[helloworldtargetqueue]go
--將訊息主體轉換為字串,以便我們檢視其中包含的內容
select
cast(message_body as
nvarchar(max)) from
[helloworldtargetqueue]go
--使用 receive 命令可從佇列接收訊息
--宣告變數以儲存接收到的資料
set nocount on
declare
@conversationhandle
uniqueidentifier
declare
@message_body
nvarchar(max)
declare
@message_type_name sysname;
--service broker 命令總是位於事務中
begin
transaction;
--receive 命令的格式類似於乙個選擇列表。首先列出
--要獲取的列,然後指定要從中獲取訊息
--的佇列
receive top(1) --
只接收一條訊息,因此我們可以直接儲存到變數中。
@message_type_name
=message_type_name,
--接收的訊息型別
@conversationhandle
=conversation_handle,
--對話的識別符號
--我們通過下列語句接收該訊息
@message_body
=message_body
--作為
--varbinary(max) blob 的訊息內容
from
[helloworldtargetqueue
@message_body
--如果這是一條 hello world 訊息,則用相應的問候語回答
if@message_type_name
= n'
helloworldrequest
'begin
send on conversation @conversationhandle
--使用下列訊息接收語句的相同會話
message type [
helloworldresponse
](n'
hello from '+
@@servername )
--這是我們希望從初始化程式接收的唯一訊息,因此
--現在可以安全地結束對話。
end conversation @conversationhandle
end--
提交事務
--如果此時我們回滾,所有內容將退回到
--我們開始時的狀態 – 訊息會返回到佇列,並且沒有傳送響應
commit
go--
確認我們從佇列中刪除了訊息
select
cast(message_body as
nvarchar(max)) from
[helloworldtargetqueue]go
use helloworlddb
goselect
cast(message_body as
nvarchar(max)) from
[helloworldinitiatorqueue]go
receive
cast(message_body as
nvarchar(max))
from
[helloworldinitiatorqueue
]
Ant Design簡單簡單簡單執行
config 配置檔案 config.js 路由定義檔案 路徑檔案 defaultsettings.js 主題顏色以及標題配置檔案 plugin.config.js 沒怎麼用過的配置檔案 dist 構建專案之後產生的檔案 mock mock資料檔案 用於本地開發使用 node modules 資源檔...
簡單題目不簡單回答
1 const變數與巨集的區別 2.程式的變數怎麼儲存的?3.巨集和列舉有什麼區別,定義陣列時使用列舉和使用巨集的區別 4.const變數是否可以做陣列下標 5.static的用法,static修飾類的方法時,是什麼意思 6.設計模式熟不熟?寫乙個最簡單的單例模式 7.如何用c實現物件導向 8.程式...
簡單的設計不簡單
最近看了 簡約至上 這本書,這本文章總結一下。推薦給對互動設計感興趣的童鞋。話說簡單 首先人們喜歡簡單 值得信賴 適應性強的產品。所以我們才會費盡心力去設計簡單的產品。人們喜歡簡單的產品原因有 1 產品的功能越多,就越難發現真正對使用者有價值的新功能。2 因為增加的複雜性導致他們很難找到自己真正需要...