Share via


Service Broker 응용 프로그램

Service Broker 응용 프로그램은 하나 이상의 프로그램과 이러한 프로그램이 사용하는 데이터베이스 개체로 구성됩니다. 응용 프로그램은 서비스라는 독립 구성 요소 간에 대화를 만든 다음 해당 대화 내에서 메시지를 교환하여 통신합니다. 응용 프로그램은 SQL Server 데이터베이스에서 Transact-SQL 문을 실행하여 Service Broker를 사용합니다.

응용 프로그램 구성 요소

Service Broker 응용 프로그램은 다음으로 구성됩니다.

  • 태스크 또는 관련 태스크 집합을 구현하는 하나 이상의 프로그램. SQL Server 외부에서는 SQL Server에서 Transact-SQL 문을 실행할 수 있는 모든 프로그래밍 환경을 통해 응용 프로그램을 작성할 수 있습니다. SQL Server 내부에서는 Transact-SQL 또는 CLR(공용 언어 런타임) 호환 언어를 사용하여 응용 프로그램을 저장 프로시저로 작성할 수 있습니다.

  • 다른 서비스에 태스크를 노출하는 서비스. 서비스는 관련 태스크 집합에 대해 주소 지정 가능 이름을 제공하는 Service Broker 개체입니다. 다른 서비스는 태스크를 수행하기 위해 이 서비스와 대화를 시작합니다.

  • 서비스 간 통신에 사용되는 메시지의 구조 및 방향을 정의하는 계약 및 메시지 유형

  • 서비스에 대한 메시지를 보관할 큐

  • 경로 및 원격 서비스 바인딩(옵션). 경로는 네트워크 주소를 원격 서비스의 이름과 연결합니다. 원격 서비스 바인딩은 서비스 이름을 로컬 데이터베이스 보안 주체와 연결합니다. Service Broker는 지정된 보안 주체와 연결된 인증서를 사용하여 원격 서비스에 대한 권한 부여 및 원격 서비스와 교환하는 메시지의 암호화를 처리합니다. Service Broker에서는 응용 프로그램을 배포하는 중 응용 프로그램을 변경할 필요 없이 경로 및 원격 서비스 바인딩을 구성할 수 있습니다. 따라서 관리자가 응용 프로그램 코드를 변경하지 않고도 서비스를 이동하고 보안 자격 증명을 변경할 수 있습니다. 경로 및 원격 서비스 바인딩을 구성하는 방법은 관리(Service Broker)를 참조하십시오.

Service Broker DML

일반적으로 응용 프로그램은 설치 시 서비스 정의 개체를 설정합니다. 응용 프로그램은 실행 중 Service Broker DML(데이터 조작 언어)을 사용하여 메시지를 보내고 받습니다. DML 문은 메시지, 대화 및 대화 그룹이라는 세 개의 큰 범주로 분류됩니다.

메시지

Service Broker는 메시지 사용을 지원하기 위한 다음과 같은 작업을 제공합니다.

  • SEND 문은 특정 대화에 대한 메시지를 보냅니다.

  • RECEIVE 문은 큐에서 하나 이상의 메시지를 받습니다. 받은 모든 메시지는 같은 대화 그룹에 속합니다.

대화

Service Broker는 대화 사용을 지원하기 위한 다음과 같은 작업을 제공합니다.

  • BEGIN DIALOG CONVERSATION 문은 두 서비스 간 대화를 시작합니다. 대화에는 정확히 두 개의 서비스가 관련되므로 대화는 둘 사이의 통신입니다.

  • END CONVERSATION 문은 대화 한 쪽을 종료합니다.

  • BEGIN CONVERSATION TIMER 문은 특정 시간에 대화 타이머 메시지를 대화 한 쪽에 배달합니다.

  • GET_TRANSMISSION_STATUS 문은 대화에 대한 마지막 전송 오류 설명을 반환합니다. 대화에 대한 마지막 메시지 전송 시도가 성공한 경우 이 문은 설명을 반환하지 않습니다.

대화 그룹

Service Broker는 대화 그룹 사용을 위한 다음과 같은 두 가지 작업을 제공합니다.

  • GET CONVERSATION GROUP 문은 큐에서 다음에 받을 수 있는 메시지에 대한 대화 그룹 식별자를 반환합니다. 또한 이 문은 대화 그룹을 잠급니다.

  • MOVE CONVERSATION 문은 대화를 한 대화 그룹에서 다른 대화 그룹으로 이동합니다. 이 문은 원래 대화 그룹과 대상 대화 그룹을 모두 잠급니다.