Service Broker队列自定义报告

时间:2012-03-21 03:16:00

标签: .net service-broker

我们已经开始研究Service Broker并计划在应用程序中实现。但是我们没有得到如何显示包含以下内容的统计报告(在UI中): 1.队列中没有消息。 2.执行/完成的消息数量。 3.处理,等待,失败等消息的数量 4.特定时间段内的对话等 等等....

是否有任何可能的方法来完全/部分获取这些信息

对此有任何帮助表示高度赞赏。

先谢谢。

1 个答案:

答案 0 :(得分:1)

使用目录视图(msdn)。例如:

Select * From sys.service_queues
Select * From sys.transmission_queue
Select * From sys.conversation_groups
Select * From sys.conversation_endpoints

使用DMV(msdn)。例如:

SELECT spid, DB_NAME(database_id) database_name, OBJECT_NAME(queue_id) queue_name,
    procedure_name, execute_as
FROM sys.dm_broker_activated_tasks
WHERE database_id = DB_ID();

SELECT DB_NAME(database_id) database_name, OBJECT_NAME(queue_id) queue_name,
    state, last_empty_rowset_time, last_activated_time, tasks_waiting
FROM sys.dm_broker_queue_monitors
WHERE database_id = DB_ID();

使用SQL Server日志。也可以这样做:

EXEC sys.xp_readerrorlog 0, 1

在Management Studio中使用报告。转到“Service Broker”节点,右键单击,然后单击“Reports-> Standart Reports-> Service Broker Statistics”