다음을 통해 공유


5단원: 요청 수신 및 응답 전송

새 설치: 2007년 9월 15일

이 단원에서는 대상 큐에서 요청 메시지를 수신하고 시작자 서비스에 응답 메시지를 전송하는 방법을 배웁니다. 이러한 단계는 데이터베이스 엔진의 대상 인스턴스와 같은 컴퓨터에서 실행되는 Management Studio 복사본에서 실행하십시오.

절차

TargetDB 데이터베이스로 전환

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 InstTargetDB 데이터베이스로 컨텍스트를 전환합니다. 여기에서 요청 메시지를 수신하고 InstInitiatorDB로 응답 메시지를 전송하게 됩니다.

    USE InstTargetDB;
    GO
    

요청 수신 및 응답 전송

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 InstTargetQueue에서 응답 메시지를 받고 시작자에 응답 메시지를 전송합니다. RECEIVE 문은 요청 메시지를 검색합니다. 그리고 이어지는 SELECT 문은 이전 단계에서 전송한 메시지와 동일한 메시지인지를 확인할 수 있도록 텍스트를 표시합니다. IF 문은 수신한 메시지가 요청 메시지 유형인지, 그리고 시작자에 응답 메시지를 전송하는 데 SEND 문이 사용되었는지 테스트합니다. END CONVERSATION 문은 대화의 대상 측을 종료하는 데 사용됩니다. 마지막 SELECT 문은 응답 메시지의 텍스트를 표시합니다.

    DECLARE @RecvReqDlgHandle UNIQUEIDENTIFIER;
    DECLARE @RecvReqMsg NVARCHAR(100);
    DECLARE @RecvReqMsgName sysname;
    
    BEGIN TRANSACTION;
    
    RECEIVE TOP(1)
        @RecvReqDlgHandle = conversation_handle,
        @RecvReqMsg = message_body,
        @RecvReqMsgName = message_type_name
    FROM InstTargetQueue;
    
    SELECT @RecvReqMsg AS ReceivedRequestMsg;
    
    IF @RecvReqMsgName = N'//BothDB/2InstSample/RequestMessage'
    BEGIN
         DECLARE @ReplyMsg NVARCHAR(100);
         SELECT @ReplyMsg =
            N'<ReplyMsg>Message for Initiator service.</ReplyMsg>';
    
         SEND ON CONVERSATION @RecvReqDlgHandle
              MESSAGE TYPE [//BothDB/2InstSample/ReplyMessage]
              (@ReplyMsg);
    
         END CONVERSATION @RecvReqDlgHandle;
    END
    
    SELECT @ReplyMsg AS SentReplyMsg;
    
    COMMIT TRANSACTION;
    GO
    

다음 단계

이것으로 요청 메시지를 수신하고 시작자 서비스에 응답 메시지를 전송했습니다. 다음 단원에서는 시작자 큐에서 응답 메시지를 수신하고 대화를 종료합니다. 6단원: 응답 수신 및 대화 종료를 참조하십시오.

참고 항목

관련 자료

END CONVERSATION(Transact-SQL)
RECEIVE(Transact-SQL)
SEND(Transact-SQL)
WAITFOR(Transact-SQL)
Service Broker Programming Basics

도움말 및 정보

SQL Server 2005 지원 받기