sys.dm_broker_queue_monitors
更新 : 2006 年 4 月 14 日
インスタンス内のキュー モニタごとに 1 行のデータを返します。キュー モニタでは、キューのアクティブ化が管理されます。
列名
データ型
説明
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 関連の動的管理ビュー
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 4 月 14 日 |
|