다음을 통해 공유


4단원: 대화 시작

새 설치: 2007년 9월 15일

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

절차

InitiatorDB 데이터베이스로 전환

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

    USE InstInitiatorDB;
    GO
    

대화 시작 및 요청 메시지 전송

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 대화를 시작하고 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단원: 요청 수신 및 응답 전송을 참조하십시오.

참고 항목

관련 자료

BEGIN DIALOG CONVERSATION(Transact-SQL)
SEND(Transact-SQL)
Service Broker Programming Basics

도움말 및 정보

SQL Server 2005 지원 받기