다음을 통해 공유


3단원: 대상 대화 개체 완료

이 단원에서는 연결된 서버를 만들고 데이터베이스 엔진의 대상 인스턴스에서 시작자 인스턴스로 라우팅하는 방법을 배웁니다. 이러한 단계는 대상 인스턴스와 동일한 컴퓨터에서 실행 중인 Management Studio에서 실행해야 합니다.

절차

시작자 개체에 대한 참조 만들기

  • 다음 코드를 복사하여 쿼리 편집기 창에 붙여 넣습니다. 2단원의 4단계에서 InstInitiatorCertficate.cer 파일을 복사한 폴더를 참조하도록 FROM FILE 절을 변경합니다. 그런 다음 이 코드를 실행하여 시작 사용자를 만들고 시작자 인증서를 가져옵니다.

    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단원: 대화 시작을 참조하십시오.