2012-08-30 20 views
1

我有一個SQL Server 2008 Service Broker隊列,通過調用CLR存儲過程(反過來,通過HTTP將消息傳輸到第三方的REST API)來處理消息。我需要處理「如何備份?」或「落後多遠?」這個隊列是。雖然我知道隊列中的消息總數是一個很好的進度指標,但我感興趣的是「隊列中最近處理的消息等待處理的時間有多長?」盡我所知,從隊列中進行選擇會爲您提供所有的信息,但並沒有給出信息的年齡。例如:如何監視SQL Service Broker中郵件的使用年限?

SELECT TOP 100 *, casted_message_body = 
CASE message_type_name WHEN 'X' 
    THEN CAST(message_body AS NVARCHAR(MAX)) 
    ELSE message_body 
END 
FROM [SyncReadTargetQueue] WITH(NOLOCK) 

但是,沒有列表示年齡。

任何想法?

回答

0

要獲得消息到達的時間,您可以使用sys.conversation_endpoints中的「security_timestamp」。

如何監視服務代理 - 也許this幫助。