Condividi tramite


Strumenti per la risoluzione dei problemi (Service Broker)

In Service Broker sono disponibili diversi strumenti per la diagnosi dei problemi di configurazione e conversazione.

Service Broker è un componente del Motore di database. Pertanto, per la diagnosi dei problemi di Service Broker, è anche possibile utilizzare molti degli strumenti del Motore di database. Per ulteriori informazioni, vedere Strumenti di risoluzione dei problemi (Motore di database).

Utilità ssbdiagnose

L'utilità ssbdiagnose analizza la configurazione dei servizi di Service Broker e le conversazioni in esecuzione per rilevare errori. Utilizzare ssbdiagnose per effettuare le operazioni seguenti:

  • Verificare che non siano presenti errori di configurazione in un'applicazione di Service Broker appena configurata.

  • Verificare che non siano presenti errori di configurazione in seguito alla modifica della configurazione di un'applicazione di Service Broker esistente.

  • Verificare che non siano presenti errori di configurazione in seguito allo scollegamento di un database di Service Broker e al successivo collegamento a una nuova istanza del Motore di database.

  • Determinare quali errori impediscono la trasmissione di messaggi tra servizi.

Per ulteriori informazioni sull'utilizzo dell'utilità, vedere Utilità ssbdiagnose.

Coda di trasmissione di Service Broker

I messaggi di Service Broker non trasmessi correttamente alla coda di ricezione vengono mantenuti nella coda di trasmissione di Service Broker nel database di invio. È possibile utilizzare la vista di sistema sys.transmission_queue in ogni database per visualizzare i messaggi presenti nella coda. Per i messaggi che si trovano nella coda a causa di un errore di trasmissione, la colonna transmission_status contiene il messaggio di errore.

Non tutti i messaggi nella coda di trasmissione sono causati da errori:

  • È possibile che alcuni messaggi nella coda siano in fase di invio, ad esempio in attesa della riconnessione di un destinatario disconnesso o dell'acknowledgement di un invio in rete.

  • Se il parametro RETENTION di una coda è impostato su ON, i messaggi trasmessi correttamente vengono mantenuti nella coda di trasmissione fino al termine della conversazione.

La colonna is_conversation_error indica se il messaggio ha rilevato un errore.

Per ulteriori informazioni su sys.transmission_queue, vedere sys.transmission_queue (Transact-SQL).

Eventi di Traccia SQL di Service Broker

In Service Broker sono disponibili diversi eventi di Traccia SQL che è possibile utilizzare per la diagnosi dei problemi. Per configurare una Traccia SQL per il monitoraggio di eventi ed errori di Service Broker, è possibile utilizzare SQL Server Profiler o le stored procedure di sistema. In questo modo è possibile visualizzare gli eventi di Service Broker generati dal sistema e se rilevano errori.

Per ulteriori informazioni sull'utilizzo di Traccia SQL, vedere Monitoraggio di eventi.

Per ulteriori informazioni sugli eventi di traccia di Service Broker, vedere Categoria di eventi Broker.

Oggetti prestazione di Service Broker

In Service Broker sono disponibili diversi oggetti prestazione che è possibile utilizzare in Monitor di sistema per rilevare le prestazioni delle operazioni di Service Broker.

Per ulteriori informazioni, vedere Monitoraggio dell'utilizzo delle risorse (Monitor di sistema).

Per ulteriori informazioni sugli oggetti prestazione di Service Broker, vedere gli argomenti seguenti:

Errori di Service Broker

Per restituire errori ad applicazioni o strumenti, in Service Broker vengono utilizzati gli stessi meccanismi del Motore di database. Per ulteriori informazioni, vedere Informazioni sugli errori del Motore di database.

Per informazioni sugli errori specifici di Service Broker, vedere Guida di riferimento a errori ed eventi (Service Broker).

Gli errori di Service Broker generati quando si esegue un'istruzione Transact-SQL vengono restituiti all'applicazione chiamante. Ad esempio, se si esegue uno script nell'editor di query di Management Studio Transact-SQL, gli errori generati dalle istruzioni Service Broker Transact-SQL vengono restituiti nella finestra Messaggi.

Molte operazioni di Service Broker sono asincrone e si verificano quando nessuna applicazione è connessa all'istanza del Motore di database. Questi errori vengono in genere restituiti nel log degli errori e nel log dell'applicazione Windows associati all'istanza del Motore di database. Per ulteriori informazioni, vedere Monitoraggio dei log degli errori.

Viste di sistema di Service Broker

In Service Broker sono disponibili diverse viste di sistema per l'analisi delle configurazioni esistenti di Service Broker o per il monitoraggio dello stato dei componenti di Service Broker.

Viste del catalogo di Service Broker

Le viste del catalogo di Service Broker restituiscono dati per la configurazione corrente di oggetti del catalogo di Service Broker, ad esempio code e contratti.

Per un elenco di viste del catalogo di Service Broker, vedere Viste del catalogo di Service Broker (Transact-SQL).

Viste a gestione dinamica di Service Broker

Le viste a gestione dinamica di Service Broker restituiscono dati per lo stato corrente dei componenti di Service Broker, ad esempio attività di attivazione e connessioni di Service Broker.

Per un elenco delle viste a gestione dinamica di Service Broker, vedere Viste a gestione dinamica relative a Service Broker (Transact-SQL).