レッスン 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 : メッセージ交換の開始」を参照してください。