第 4 課:開始交談
在這一課,您將學會啟動跨越兩個 Database Engine 執行個體的交談並將要求訊息從起始端執行個體傳送至目標執行個體。請從與起始端執行個體在相同電腦上執行的 Management Studio 副本執行這些步驟。
程序
切換至 InitiatorDB 資料庫
將下列程式碼複製並貼入 [查詢編輯器] 視窗中。然後,執行此程式碼以便將內容切換至 InstInitiatorDB 資料庫,如此您就可以在其中起始交談。
USE InstInitiatorDB; GO
啟動交談並傳送要求訊息
將下列程式碼複製並貼入 [查詢編輯器] 視窗中。然後,執行此程式碼以便開始交談並將要求訊息傳送至 InstTargetDB 中的 //TgtDB/2InstSample/TargetService。此程式碼必須在單一區塊中執行,因為系統會使用變數,將對話控制代碼從 BEGIN DIALOG 傳遞至 SEND 陳述式。此批次會執行 BEGIN DIALOG 陳述式來開始交談並建立要求訊息。然後,它會使用 SEND 陳述式中的對話控制代碼,傳送該交談的要求訊息。最後一個 SELECT 陳述式只會顯示已傳送之訊息的文字。
DECLARE @InitDlgHandle UNIQUEIDENTIFIER; DECLARE @RequestMsg NVARCHAR(100); BEGIN TRANSACTION; BEGIN DIALOG @InitDlgHandle FROM SERVICE [//InstDB/2InstSample/InitiatorService] TO SERVICE N'//TgtDB/2InstSample/TargetService' ON CONTRACT [//BothDB/2InstSample/SimpleContract] WITH ENCRYPTION = ON; SELECT @RequestMsg = N'<RequestMsg>Message for Target service.</RequestMsg>'; SEND ON CONVERSATION @InitDlgHandle MESSAGE TYPE [//BothDB/2InstSample/RequestMessage] (@RequestMsg); SELECT @RequestMsg AS SentRequestMsg; COMMIT TRANSACTION; GO