我有一个 SQL Server 2008 Service Broker 队列,它通过调用 CLR 存储过程(反过来,通过 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)
但是,没有一列表明年龄。
有任何想法吗?