단원 4: 대화 시작

적용 대상:SQL ServerAzure SQL Managed Instance

이 단원에서는 데이터베이스 엔진의 두 인스턴스를 연결하는 대화를 시작하고 초기자 인스턴스에서 대상 인스턴스로 요청 메시지를 보내는 방법을 알아봅니다. 이러한 단계는 초기자 인스턴스와 동일한 컴퓨터에서 실행 중인 Management Studio 복사본에서 실행해야 합니다.

절차

InitiatorDB 데이터베이스로 전환

  • 다음 코드를 복사하여 쿼리 편집기 창에 붙여넣습니다. 그런 다음, 코드를 실행하여 컨텍스트를 InstInitiatorDB 데이터베이스로 전환하고 여기에서 대화를 시작합니다.

        USE InstInitiatorDB;
        GO
    

대화를 시작하고 요청 메시지 보내기

  • 다음 코드를 복사하여 쿼리 편집기 창에 붙여넣습니다. 그런 다음, 코드를 실행하여 대화를 시작하고 요청 메시지를 InstTargetDB//TgtDB/2InstSample/TargetService에 보냅니다. 변수가 BEGIN DIALOG의 대화 핸들을 SEND 문으로 전달하는 데 사용되므로 코드를 한 블록에서 실행해야 합니다. 일괄 처리는 BEGIN DIALOG 문을 실행하여 대화를 시작한 다음 요청 메시지를 작성합니다. 그런 다음 SEND 문의 대화 핸들을 사용하여 해당 대화에 요청 메시지를 보냅니다. 마지막 SELECT 문은 전송된 메시지의 텍스트만 표시합니다.

        DECLARE @InitDlgHandle UNIQUEIDENTIFIER;
        DECLARE @RequestMsg NVARCHAR(100);
    
        BEGIN TRANSACTION;
    
        BEGIN DIALOG @InitDlgHandle
             FROM SERVICE [//InstDB/2InstSample/InitiatorService]
             TO SERVICE N'//TgtDB/2InstSample/TargetService'
             ON CONTRACT [//BothDB/2InstSample/SimpleContract]
             WITH
                 ENCRYPTION = ON;
    
        SELECT @RequestMsg = N'<RequestMsg>Message for Target service.</RequestMsg>';
    
        SEND ON CONVERSATION @InitDlgHandle
             MESSAGE TYPE [//BothDB/2InstSample/RequestMessage]
             (@RequestMsg);
    
        SELECT @RequestMsg AS SentRequestMsg;
    
        COMMIT TRANSACTION;
        GO
    

다음 단계

대화를 성공적으로 시작하고 요청 메시지를 대상 서비스로 보냈습니다. 다음으로 대상 큐에서 요청 메시지를 수신하고 초기자 서비스에 회신 메시지를 보내는 방법을 알아봅니다. 자세한 내용은 단원 5: 요청 수신 및 응답 전송을 참조하세요.

참고 항목