レッスン 3 : メッセージ交換の対象オブジェクトの作成完了
新規 : 2007 年 9 月 15 日
このレッスンでは、リンク サーバーを作成し、データベース エンジンの対象インスタンスから発信側インスタンスへのルートを作成する方法を学習します。この手順は、対象となるインスタンスと同じコンピュータ上で実行されている 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 : メッセージ交換の開始」を参照してください。
参照
その他の技術情報
CREATE REMOTE SERVICE BINDING (Transact-SQL)
CREATE ROUTE (Transact-SQL)
CREATE USER (Transact-SQL)
EXECUTE (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
Service Broker のルーティングとネットワーク
ネットワークとリモート セキュリティ