内部アクティブ化の実装
このチュートリアルは、Service Broker は初めて使用するが、データベースの概念と Transact-SQL ステートメントについては理解しているユーザーを対象としています。ここでは、初心者のユーザーを対象に、Service Broker メッセージを処理するための内部アクティブ化ストアド プロシージャを実装する方法を紹介します。
学習する内容
このチュートリアルでは、内部アクティブ化ストアド プロシージャを使用して、簡単な要求/応答の Service Broker メッセージ交換をサポートするために必要なデータベース オブジェクトを作成する方法について学習します。次に、メッセージ交換を開始し、それを使用してメッセージを送信します。
各 Service Broker メッセージ交換には、発信側と発信先があります。要求/応答のメッセージ交換では、発信側から要求メッセージが送信され、発信先は応答メッセージを返します。Service Broker の内部アクティブ化を使用すると、処理するメッセージが存在するときにストアド プロシージャを実行できます。Service Broker は、多数のメッセージが転送される場合は、ストアド プロシージャの複数のコピーを実行できます。このチュートリアルでは、発信先で要求メッセージを受信するストアド プロシージャを作成する方法と、内部アクティブ化を使用してストアド プロシージャを実行するように発信先を構成する方法を示します。
実行する作業は次のとおりです。
発信先のサービスとキュー、および発信側のサービスとキューを作成する。
要求メッセージ型と応答メッセージ型を作成する。
発信側から発信先に送信される要求メッセージと、発信先から発信側に送信される応答メッセージを指定するコントラクトを作成する。
発信先キューからの要求メッセージを受信し、発信側に応答メッセージを送信するストアド プロシージャを作成する。
発信先キューを変更してストアド プロシージャの内部アクティブ化を有効にする。
次に、簡単なメッセージ交換を実行します。
メッセージ交換を開始する。
発信側から発信先に要求を送信する。
Service Broker によってストアド プロシージャがアクティブ化され、ストアド プロシージャが発信先で要求を受信し、応答を発信側に送信する。
発信側で応答を受信する。
発信側でのメッセージ交換を終了する。
Service Broker によってストアド プロシージャが再度アクティブ化され、ストアド プロシージャが発信先のメッセージ交換を終了する。
発信側と発信先がデータベース エンジンの同じインスタンスに存在するメッセージ交換では、メッセージはネットワークを介して転送されません。データベース エンジンのセキュリティおよび権限により、許可されたプリンシパルへのアクセスが制限されます。このシナリオでは、ネットワーク暗号化は必要ありません。
このチュートリアルは、次の 3 つのレッスンで構成されています。
レッスン 1 : 基本のメッセージ交換オブジェクトの作成
このレッスンでは、基本的な Service Broker メッセージ交換をサポートするために必要なメッセージ型、コントラクト、サービス、およびキューを作成します。レッスン 2: 内部アクティブ化プロシージャの作成
このレッスンでは、発信先キューからのメッセージを受信してから、発信先キューを変更して内部アクティブ化を指定するストアド プロシージャを作成します。レッスン 3 : メッセージ交換の開始とメッセージの送信
このレッスンでは、メッセージ交換を開始し、発信側から発信先に要求メッセージを転送して、基本的なメッセージ交換を完了します。内部アクティブ化ストアド プロシージャは要求メッセージを受信して応答メッセージを返します。その後、発信側でのメッセージ交換を終了すると、ストアド プロシージャによって発信先でのメッセージ交換が終了します。レッスン 4 : メッセージ交換オブジェクトの削除
このレッスンでは、メッセージ交換をサポートするために作成されたオブジェクトを削除します。
必要条件
このチュートリアルを完了するには、Transact-SQL 言語と、SQL Server Management Studio のデータベース エンジン クエリ エディターの使用方法についての知識が必要です。また、AdventureWorks2008R2 サンプル データベースの db_ddladmin 固定データベース ロール、db_owner 固定データベース ロール、または sysadmin 固定サーバー ロールのメンバーである必要があります。
システムには次のコンポーネントがインストールされている必要があります。
SQL Server 2005 または SQL Server 2008 の任意のエディション。
SQL Server Management Studio または Management Studio Express。
Internet Explorer 6 以降。
AdventureWorks2008R2 サンプル データベース。このサンプル データベースのインストール方法の詳細については、「SQL Server のサンプルとサンプル データベースのインストールに関する注意点」を参照してください。
注 チュートリアルを行うときは、ドキュメント ビューアーのツール バーに [次のトピック] ボタンと [前のトピック] ボタンを追加することをお勧めします。詳細については、「ヘルプへの [次のトピック] ボタンと [前のトピック] ボタンの追加」を参照してください。