sys.dm_broker_queue_monitors
Data aggiornamento: 14 aprile 2006
Restituisce una riga per ogni monitor di coda nell'istanza. Un monitor di coda gestisce l'attivazione di una coda.
Nome colonna
Tipo di dati
Descrizione
database_id
int
Identificatore di oggetto per il database contenente la coda controllata dal monitor. Supporta valori Null.
queue_id
int
Identificatore di oggetto per la coda controllata dal monitor. Supporta valori Null.
state
nvarchar(32)
Stato del monitor. Supporta valori Null. I possibili valori sono i seguenti:
- INACTIVE
- NOTIFIED
- RECEIVES_OCCURRING
last_empty_rowset_time
datetime
Ultima volta in cui un'istruzione RECEIVE dalla coda ha restituito un risultato vuoto. Supporta valori Null.
last_activated_time
datetime
Ultima volta in cui il monitor di coda ha attivato una stored procedure. Supporta valori Null.
tasks_waiting
int
Numero di sessioni in attesa della coda all'interno di un'istruzione RECEIVE. Supporta valori Null.
Nota:
Questo numero include qualsiasi sessione che esegue un'istruzione RECEIVE, indipendentemente dal fatto che il monitor di coda abbia avviato la sessione. Ciò è valido solo in caso di utilizzo di WAITFOR in combinazione con RECEIVE. Queste attività rimangono essenzialmente in attesa dell'arrivo di messaggi nella coda.
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Esempi
A. Stato corrente del monitor di coda
Nello scenario seguente viene restituito lo stato corrente di tutte le code di messaggi.
SELECT t1.name AS [Service_Name], t3.name AS [Schema_Name], t2.name AS [Queue_Name],
CASE WHEN t4.state IS NULL THEN 'Not available'
ELSE t4.state
END AS [Queue_State],
CASE WHEN t4.tasks_waiting IS NULL THEN '--'
ELSE CONVERT(VARCHAR, t4.tasks_waiting)
END AS tasks_waiting,
CASE WHEN t4.last_activated_time IS NULL THEN '--'
ELSE CONVERT(varchar, t4.last_activated_time)
END AS last_activated_time ,
CASE WHEN t4.last_empty_rowset_time IS NULL THEN '--'
ELSE CONVERT(varchar,t4.last_empty_rowset_time)
END AS last_empty_rowset_time,
(
SELECT COUNT(*)
FROM sys.transmission_queue t6
WHERE (t6.from_service_name = t1.name) ) AS [Tran_Message_Count]
FROM sys.services t1 INNER JOIN sys.service_queues t2
ON ( t1.service_queue_id = t2.object_id )
INNER JOIN sys.schemas t3 ON ( t2.schema_id = t3.schema_id )
LEFT OUTER JOIN sys.dm_broker_queue_monitors t4
ON ( t2.object_id = t4.queue_id AND t4.database_id = DB_ID() )
INNER JOIN sys.databases t5 ON ( t5.database_id = DB_ID() )
Vedere anche
Riferimento
Funzioni e viste a gestione dinamica
Viste a gestione dinamica relative a Service Broker
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
14 aprile 2006 |
|