我们已经开始研究Service Broker并计划在应用程序中实现。但是我们没有得到如何显示包含以下内容的统计报告(在UI中): 1.队列中没有消息。 2.执行/完成的消息数量。 3.处理,等待,失败等消息的数量 4.特定时间段内的对话等 等等....
是否有任何可能的方法来完全/部分获取这些信息
对此有任何帮助表示高度赞赏。
先谢谢。
答案 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”