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

적용 대상:SQL ServerAzure SQL Managed Instance

이 단원에서는 연결된 서버를 만들고 데이터베이스 엔진의 대상 인스턴스에서 초기자 인스턴스로 라우팅하는 방법을 알아봅니다. 이러한 단계는 대상 인스턴스와 동일한 컴퓨터에서 실행 중인 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: 대화 시작을 참조하세요.

참고 항목