sys.dm_broker_queue_monitors
Изменения: 14 апреля 2006 г.
Возвращает по одной строке для каждого монитора очереди в экземпляре. Монитор очереди управляет активацией очереди.
Имя столбца
Тип данных
Описание
database_id
int
Идентификатор объекта для базы данных, содержащей очередь, за которой следит монитор. Допускает значение NULL.
queue_id
int
Идентификатор объекта для очереди, за которой следит монитор. Допускает значение NULL.
state
nvarchar(32)
Состояние монитора. Допускает значение NULL. Одно из следующих значений:
- INACTIVE
- NOTIFIED
- RECEIVES_OCCURRING
last_empty_rowset_time
datetime
Последний раз, когда инструкция RECEIVE из очереди возвратила пустой результат. Допускает значение NULL.
last_activated_time
datetime
Последний раз, когда монитор очереди активировал хранимую процедуру. Допускает значение NULL.
tasks_waiting
int
Количество сеансов, ожидающих в инструкции RECEIVE для этой очереди. Допускает значение NULL.
Примечание.
Это число включает все сеансы, выполняющие инструкцию RECEIVE, независимо от того, запустил ли монитор очереди сеанс. Это происходит, если вместе с RECEIVE используется инструкция WAITFOR. В основном, эти задачи ожидают прибытия сообщений в очередь.
Разрешения
Требует разрешения VIEW SERVER STATE на сервере.
Примеры
A. Монитор текущего состояния очереди
Этот сценарий предоставляет сведения о текущем состоянии всех очередей сообщений.
SELECT t1.name AS [Service_Name], t3.name AS [Schema_Name], t2.name AS [Queue_Name],
CASE WHEN t4.state IS NULL THEN 'Not available'
ELSE t4.state
END AS [Queue_State],
CASE WHEN t4.tasks_waiting IS NULL THEN '--'
ELSE CONVERT(VARCHAR, t4.tasks_waiting)
END AS tasks_waiting,
CASE WHEN t4.last_activated_time IS NULL THEN '--'
ELSE CONVERT(varchar, t4.last_activated_time)
END AS last_activated_time ,
CASE WHEN t4.last_empty_rowset_time IS NULL THEN '--'
ELSE CONVERT(varchar,t4.last_empty_rowset_time)
END AS last_empty_rowset_time,
(
SELECT COUNT(*)
FROM sys.transmission_queue t6
WHERE (t6.from_service_name = t1.name) ) AS [Tran_Message_Count]
FROM sys.services t1 INNER JOIN sys.service_queues t2
ON ( t1.service_queue_id = t2.object_id )
INNER JOIN sys.schemas t3 ON ( t2.schema_id = t3.schema_id )
LEFT OUTER JOIN sys.dm_broker_queue_monitors t4
ON ( t2.object_id = t4.queue_id AND t4.database_id = DB_ID() )
INNER JOIN sys.databases t5 ON ( t5.database_id = DB_ID() )
См. также
Справочник
Динамические административные представления и функции
Динамические административные представления компонента Service Broker
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
14 апреля 2006 г. |
|