Поделиться через


Активация на основе событий

SQL Server передает событие об активации очереди, чтобы уведомить внешние приложения о том, что в очереди содержатся сообщения для обработки. В этом разделе описано это событие и стратегии по его получению и выполнению ответных действий.

Событие активации очереди

В SQL Server входит событие QUEUE_ACTIVATION. Это событие сообщает о том, что для другого агента чтения очереди имеется некоторый объем работы. Событие активации содержит имя очереди, а также имя базы данных и схемы, содержащих очередь. С помощью этих данных внешняя программа может запустить необходимую программу для чтения очереди.

SQL Server не может отслеживать доступные ресурсы или количество внешних процессов, выполняющих чтение очереди. Поэтому SQL Server периодически создает события активации очереди, пока необходима активация.

Наблюдение за событиями активации из внешнего приложения

Внешнее приложение, использующее активацию на основе событий, обычно создает уведомление об активации для очереди, получающей сообщения для службы. Внешнее приложение создает службу и очередь для получения сообщений активации, а затем наблюдает за появлением в этой очереди сообщений о событиях QUEUE_ACTIVATION.

Такая стратегия позволяет внешнему приложению использовать логику активации, встроенную в компонент Service Broker, чтобы определить, когда появляется работа для агента чтения очереди. Кроме того, одно внешнее приложение может наблюдать за активацией для нескольких очередей и запускать необходимую программу, когда требуется активация.