基于事件的激活

SQL Server 提供队列激活事件以在队列有要处理的消息时通知外部应用程序。本主题介绍此类事件以及用于接收和响应事件的策略。

队列激活事件

SQL Server 包括 QUEUE_ACTIVATION 事件。此事件报告存在需另一队列读取器执行的有用工作。该激活事件包括相应队列的名称以及该队列所属数据库和架构的名称。外部程序可以使用此信息启动正确的程序以从队列进行读取。

SQL Server 无法跟踪正从队列进行读取的外部进程的容量或数目。因此,只要需要激活,SQL Server 就会定期生成队列激活事件。

通过外部应用程序监视激活事件

使用基于事件的激活的外部应用程序通常会为接收服务消息的队列创建事件通知。此类外部应用程序会创建服务和队列以便接收激活消息,然后监视报告 QUEUE_ACTIVATION 事件的消息的队列。

此策略允许外部应用程序使用内置于 Service Broker 的激活逻辑来确定何时工作量超出了一个队列读取器的能力。此外,一个外部应用程序可以监视多个队列的激活,并在需要激活时启动适当的程序。