Service Broker 응용 프로그램 만들기

이 섹션에서는 Service Broker 응용 프로그램의 구조에 대한 일반적인 개요를 제공하고, Service Broker를 사용하는 응용 프로그램을 시작하기 위한 가장 일반적인 전략 몇 가지와 메시지를 받고 처리하는 기본 단계에 대해 설명합니다.

시작 서비스의 응용 프로그램에서는 BEGIN DIALOG 문을 사용하여 각 끝점의 서비스와 해당 응용 프로그램에서 통신에 사용할 서비스 계약에 대한 정보를 지정합니다. 그런 다음 SEND 문을 사용하여 대화의 첫 번째 메시지를 대상 서비스에 보냅니다. 응용 프로그램은 Service Broker에서 메시지를 받고 처리할 수 있는 준비가 되어 있어야 합니다. 이는 계약에서 대상 서비스가 메시지를 반환하는 것을 허용하지 않는 경우에도 해당됩니다. 시작 응용 프로그램은 두 개의 개별 구성 요소로 구현되는 경우가 많습니다. 한 구성 요소는 대화를 시작하고, 다른 구성 요소는 큐에 도착한 메시지를 처리합니다.

대상 서비스의 응용 프로그램은 시작 서비스에서 메시지를 받고 처리합니다. 이 응용 프로그램도 Service Broker에서 메시지를 받고 처리할 수 있는 준비가 되어 있어야 합니다.

큐를 처리하는 응용 프로그램 부분은 서비스의 요구 사항에 따라 몇 가지 다른 방법으로 시작할 수 있습니다. Service Broker를 사용하는 응용 프로그램의 시작 방법은 시작 전략 선택을 참조하십시오.

어떤 방법으로 응용 프로그램을 시작하든 응용 프로그램에서는 트랜잭션을 시작하고 RECEIVE 문을 사용하여 메시지를 큐에서 꺼냅니다. 그런 다음 메시지의 데이터를 추출하고 필요한 처리 작업을 수행합니다. 필요한 경우 응용 프로그램에서는 SEND 문을 사용하여 대화의 다른 쪽에 메시지를 보냅니다. 그런 다음 트랜잭션을 커밋합니다. 효율성을 위해 응용 프로그램은 동일한 트랜잭션 내에서 여러 메시지를 처리할 수 있습니다. 상태를 관리하는 서비스에서는 종종 GET CONVERSATION GROUP 문을 사용하여 대화 그룹을 잠그고, 대화 그룹의 상태를 검색한 다음, 대화 그룹의 여러 메시지를 처리합니다.

SEND 및 RECEIVE 문을 사용하여 끝점 간에 메시지를 전송함으로써 대화는 계속됩니다. 대화의 양쪽 참가자는 필요할 때 언제든지 BEGIN DIALOG를 사용하여 다른 서비스와의 대화를 시작하고 추가 정보를 얻을 수 있습니다. 예를 들어 이벤트 알림을 처리하고 있는 응용 프로그램에서는 알림을 보내기 전에 개인 정보를 제공하는 서비스와의 다른 대화를 시작하여 최신 연락처 정보를 검색할 수 있습니다.

대화의 목적이 달성되면 적절한 끝점의 응용 프로그램에서 END CONVERSATION 문을 사용하여 대화를 종료합니다. 이때 다른 참가자는 END CONVERSATION 메시지를 받고 해당 참가자 쪽에서도 END CONVERSATION을 실행합니다. 두 참가자가 모두 END CONVERSATION 메시지를 실행하면 대화가 종료됩니다.

오류가 발생할 경우 대화의 한 참가자가 WITH ERROR 절을 사용하여 대화를 종료함으로써 실패를 나타낼 수 있습니다. WITH ERROR 절을 사용하면 대화가 종료되고 대화의 다른 참가자에게 Service Broker 오류 메시지가 보내집니다.

Service Broker에서 오류를 감지하거나 대화 수명이 만료되면 Service Broker는 대화를 종료하고 활성 참가자에게 오류 메시지를 반환합니다. Service Broker에서 대화를 구성하지 못한 경우 유일한 활성 참가자는 시작 응용 프로그램이므로 시작 서비스에 오류가 전달됩니다. 한 참가자가 이미 대화를 종료한 경우에는 다른 참가자에게 오류 메시지가 전달됩니다. 그렇지 않은 경우에는 대화의 두 참가자 모두에게 오류가 전달됩니다.

섹션 내용