レッスン 3 : 発信先メッセージ交換オブジェクトの完了
このレッスンでは、リンク サーバーと、データベース エンジンの発信先インスタンスから発信側インスタンスへのルートを作成する方法を学習します。これらの手順は、発信先インスタンスと同じコンピュータで実行されている Management Studio のコピーから実行してください。
手順
発信側オブジェクトへの参照の作成
次のコードをコピーし、クエリ エディタ ウィンドウに貼り付けます。FROM FILE 句を変更し、レッスン 2 の手順 4. で InstInitiatorCertficate.cer ファイルをコピーしたフォルダを参照します。次にコードを実行し、発信側ユーザーを作成して発信側証明書を取り込みます。
USE InstTargetDB GO CREATE USER InitiatorUser WITHOUT LOGIN; CREATE CERTIFICATE InstInitiatorCertificate AUTHORIZATION InitiatorUser FROM FILE = N'C:\storedcerts\$ampleSSBCerts\InstInitiatorCertificate.cer'; GO
ルートの作成
次のコードをコピーし、クエリ エディタ ウィンドウに貼り付けます。文字列 MyInitiatorComputer を、発信側インスタンスを実行しているコンピュータの名前に変更します。次にコードを実行し、発信先サービスおよび発信側サービスへのルートと、InitiatorUser を発信側サービス ルートに関連付けるリモート サービス バインドを作成します。
以下の CREATE ROUTE ステートメントは、発信先インスタンスに重複するサービス名が存在しないと仮定しています。発信先インスタンスの複数のデータベースに同じ名前のサービスが含まれている場合は、BROKER_INSTANCE 句を使用して、メッセージ交換を行うデータベースを指定します。
DECLARE @Cmd NVARCHAR(4000); SET @Cmd = N'USE InstTargetDB; CREATE ROUTE InstInitiatorRoute WITH SERVICE_NAME = N''//InstDB/2InstSample/InitiatorService'', ADDRESS = N''TCP://MyInitiatorComputer:4022'';'; EXEC (@Cmd); SET @Cmd = N'USE msdb CREATE ROUTE InstTargetRoute WITH SERVICE_NAME = N''//TgtDB/2InstSample/TargetService'', ADDRESS = N''LOCAL'''; EXEC (@Cmd); GO GRANT SEND ON SERVICE::[//TgtDB/2InstSample/TargetService] TO InitiatorUser; GO CREATE REMOTE SERVICE BINDING InitiatorBinding TO SERVICE N'//InstDB/2InstSample/InitiatorService' WITH USER = InitiatorUser; GO
次の手順
これで、発信側データベースへの Service Broker メッセージ交換をサポートするように発信先データベースを構成する作業が適切に終了しました。次に、発信側データベースでメッセージ交換を開始し、発信先サービスに要求メッセージを送信します。「レッスン 4 : メッセージ交換の開始」を参照してください。