다음을 통해 공유


4단원: 대화 시작

이 단원에서는 데이터베이스 엔진의 두 인스턴스를 연결하는 대화를 시작하고 시작자 인스턴스에서 대상 인스턴스로 요청 메시지를 보내는 방법을 배웁니다. 이러한 단계는 시작자 인스턴스와 동일한 컴퓨터에서 실행 중인 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단원: 요청 수신 및 응답 전송을 참조하십시오.