Service Broker 애플리케이션

적용 대상:SQL ServerAzure SQL Managed Instance

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 문은 대화를 하나의 대화 그룹에서 다른 대화 그룹으로 이동시킵니다. 이 문은 원래 대화 그룹과 대상 대화 그룹을 모두 잠급니다.

참고 항목