Share via


Service Broker 큐 만들기

큐에는 서비스에 대한 들어오는 메시지가 보관됩니다. 간단하게 처리하기 위해 응용 프로그램에서는 일반적으로 여러 서비스에 동일한 큐를 사용하는 대신 각 서비스에 대한 별도의 큐를 하나씩 만듭니다.

큐의 보존 옵션을 설정하면 메시지가 처리된 후에도 보존됩니다. 보존 옵션을 사용하면 응용 프로그램 성능이 저하되므로 응용 프로그램에서 보내고 받은 정확한 메시지에 지속적으로 액세스해야 하는 경우에만 보존 옵션을 지정해야 합니다. 메시지 보존에 대한 자세한 내용은 메시지 보존을 참조하십시오.

내부 활성화를 사용하지 않는 응용 프로그램의 경우에는 큐 정의에 활성화 절을 지정하지 않습니다.

내부 활성화를 사용하는 응용 프로그램의 경우 큐 정의에는 저장 프로시저의 이름, SQL Server에서 시작할 수 있는 최대 판독기 수 및 저장 프로시저를 시작하기 전에 가장할 데이터베이스 보안 주체의 이름이 포함됩니다.

큐 이름은 메시지의 네트워크 형식에 포함되지 않습니다. 큐는 스키마가 소유하는 개체이므로 큐 이름은 SQL Server 명명 규칙을 따릅니다. 명명에 대한 자세한 내용은 Service Broker 개체 이름 지정을 참조하십시오.

저장 프로시저 활성화

큐에 저장 프로시저를 연결할 수 있습니다. 그러면 SQL Server에서는 큐에 처리할 메시지가 있을 때 저장 프로시저를 활성화합니다. 이 자동 활성화 프로세스를 통해 Service Broker 응용 프로그램을 응용 프로그램의 현재 처리 로드에 따라 동적으로 확장할 수 있습니다. Service Broker에서 활성화한 각 저장 프로시저는 개별 스레드에서 실행됩니다. 큐에 저장 프로시저가 지정된 경우 Service Broker에서는 필요할 때 큐에 지정된 최대 인스턴스 수까지 저장 프로시저의 새 인스턴스를 시작합니다.

활성화된 저장 프로시저에서는 일반적으로 하나 이상의 메시지를 처리하고 해당 메시지를 시작한 서비스에 응답을 반환합니다. 저장 프로시저에서 메시지를 처리하는 속도보다 메시지 수신 속도가 더 빠른 경우 Service Broker에서는 큐에 정의된 최대 개수까지 다른 저장 프로시저 인스턴스를 시작합니다. 일반적으로 활성화된 저장 프로시저가 잠시라도 큐에서 사용할 수 있는 메시지를 찾을 수 없는 경우에는 해당 프로시저가 종료됩니다.

활성화 저장 프로시저는 Service Broker 응용 프로그램을 디자인할 때 일반적으로 사용됩니다. 그러나 특정 응용 프로그램의 요구 사항에는 다른 디자인이 더 적합할 수도 있습니다. SQL Server에서 Transact-SQL 일괄 처리를 실행할 수 있는 모든 응용 프로그램은 메시지를 보내고 받을 수 있습니다. 또한 저장 프로시저는 SQL Server에서 활성화되거나, SQL Server 에이전트에서 시작되거나, 외부 응용 프로그램에서 실행되거나, SQL Server Management Studio 또는 SQL Server Express Management Studio와 같은 도구에서 대화형으로 실행된 경우를 포함하여 어느 경우에나 메시지를 처리할 수 있습니다.