다음을 통해 공유


1단원: 대화 개체 만들기

새 설치: 2007년 9월 15일

이 단원에서는 데이터베이스가 데이터베이스 내의 대화를 지원할 수 있게 해주는 모든 개체를 만드는 방법을 배웁니다.

절차

Service Broker 활성화 및 AdventureWorks 데이터베이스로 전환

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 AdventureWorks 데이터베이스에서 Service Broker를 활성화하고 데이터베이스로 컨텍스트를 전환합니다.

    USE master;
    GO
    ALTER DATABASE AdventureWorks
          SET ENABLE_BROKER;
    GO
    USE AdventureWorks;
    GO
    

메시지 유형 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 대화를 위한 메시지 유형을 만듭니다. Service Broker 개체는 여러 데이터베이스 엔진 인스턴스에서 참조되는 경우가 많으므로 대부분의 Service Broker 개체에는 URI 형식의 이름이 지정됩니다. 이를 통해 여러 컴퓨터에서 이러한 개체를 고유하게 식별할 수 있습니다. 이러한 메시지 유형은 모두 Service Broker에서 메시지가 올바른 형식의 XML 문서인지만 검사하고 XML을 특정 스키마에 대해 검사하지는 않도록 지정합니다.

    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/RequestMessage]
           VALIDATION = WELL_FORMED_XML;
    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/ReplyMessage]
           VALIDATION = WELL_FORMED_XML;
    GO
    

계약 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 대화를 위한 계약을 만듭니다. 계약은 이를 사용하는 대화가 //AWDB/1DBSample/RequestMessage 유형의 메시지를 시작자에서 대상으로 전송해야 하며 //AWDB/1DBSample/ReplyMessage 유형의 메시지를 대상에서 시작자로 전송해야 함을 지정합니다.

    CREATE CONTRACT [//AWDB/1DBSample/SampleContract]
          ([//AWDB/1DBSample/RequestMessage]
           SENT BY INITIATOR,
           [//AWDB/1DBSample/ReplyMessage]
           SENT BY TARGET
          );
    GO
    

대상 큐 및 서비스 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 대상에 사용될 큐 및 서비스를 만듭니다. 큐는 같은 데이터베이스에서 테이블 및 뷰와 비슷한 방법으로 참조되므로 큐 이름은 테이블 또는 뷰 이름과 비슷하게 형식이 지정됩니다. CREATE SERVICE 문은 서비스를 TargetQueue2DB와 연결합니다. 따라서 서비스로 전송되는 모든 메시지는 TargetQueue2DB에 수신됩니다. 또한 CREATE SERVICE는 이전에 만든 //AWDB/1DBSample/SampleContract를 사용하는 대화만 서비스를 대상 서비스로 사용할 수 있도록 지정합니다.

    CREATE QUEUE TargetQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/TargetService]
           ON QUEUE TargetQueue1DB
           ([//AWDB/1DBSample/SampleContract]);
    GO
    

시작자 큐 및 서비스 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 시작자에 사용되는 큐 및 서비스를 만듭니다. 계약 이름이 지정되지 않았으므로 다른 서비스는 이 서비스를 대상 서비스로 사용할 수 없습니다.

    CREATE QUEUE InitiatorQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/InitiatorService]
           ON QUEUE InitiatorQueue1DB;
    GO
    

다음 단계

이것으로 //AWDB/1DBSample/InitiatorService//AWDB/1DBSample/TargetService 간의 대화를 지원하도록 AdventureWorks를 성공적으로 구성했습니다. 다음 단원에서는 구성을 사용하여 대화를 완료합니다. 2단원: 대화 시작 및 메시지 전송을 참조하십시오.

참고 항목

관련 자료

ALTER DATABASE(Transact-SQL)
CREATE MESSAGE TYPE(Transact-SQL)
CREATE CONTRACT(Transact-SQL)
CREATE QUEUE(Transact-SQL)
CREATE SERVICE(Transact-SQL)
대화(Conversation) 아키텍처
서비스 아키텍처

도움말 및 정보

SQL Server 2005 지원 받기