1

CLR ストアド プロシージャを呼び出してメッセージを処理する SQL Server 2008 Service Broker キューがあります (これにより、メッセージが HTTP 経由でサード パーティの REST API に転送されます)。「どのようにバックアップしたか」を把握する必要があります。または「どれくらい遅れていますか?」このキューは。キュー内のメッセージの総数が進行状況の良い指標であることは理解していますが、私が興味を持っているのは、「最後に処理されたメッセージがキューで処理されるのを待っていた時間は?」ということです。私が知る限り、キューから選択すると、キュー内のすべてのメッセージが表示されますが、メッセージの経過時間は表示されません。例えば:

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)

ただし、年齢を示す列はありません。

何か案は?

4

1 に答える 1

0

メッセージが到着した時刻を取得するには、 sys.conversation_endpointsで "security_timestamp" を使用できます。

Service Broker を監視する方法 - おそらくこれが役立ちます。

于 2012-09-05T11:42:33.303 に答える