Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server
Istanza gestita di SQL di Azure
È necessario disinstallare un'applicazione Service Broker solo quando il database continua a essere ospitato nella stessa istanza, ma non fornisce più il servizio implementato dall'applicazione. L'eliminazione di un database elimina gli oggetti di Service Broker all'interno di tale database. Lo spostamento di un database da un'istanza a un'altra sposta anche i servizi ospitati all'interno del database.
Disinstallare un servizio di avvio
Per disinstallare un servizio di avvio, innanzitutto impedire all'applicazione di creare messaggi in uscita. Il modo migliore per impedire all'applicazione di inviare nuovi messaggi dipende dal tipo di applicazione. Per un'applicazione che usa una stored procedure per avviare una conversazione, potrebbe essere necessario eliminare tale stored procedure. Per un programma esterno, potrebbe essere necessario rendere il programma non disponibile per gli utenti o disinstallare il programma.
Dopo aver impedito al servizio di creare nuovi messaggi, assicurarsi che il servizio elabori ogni messaggio che rimane nella coda. È possibile scrivere una semplice procedura che riceve ogni messaggio nella coda, terminare la conversazione con un errore e rimuovere lo stato per la conversazione. L'elaborazione di tutti i messaggi nella coda consente alle applicazioni di destinazione di terminare la conversazione normalmente anziché attendere una risposta dal servizio che si sta arrestando.
Eliminare infine la definizione del servizio per assicurarsi che Service Broker non accetti più messaggi per il servizio. Eliminare i percorsi per il servizio. Eliminare i contratti, i tipi di messaggio e le code per il servizio, a meno che questi oggetti non vengano usati da un altro servizio nell'istanza. Se necessario, eliminare la stored procedure di attivazione per il servizio.
Disinstallare un servizio di destinazione
Per disinstallare un servizio di destinazione, assicurarsi innanzitutto che il servizio elabori ogni messaggio che rimane nella coda. È possibile consentire all'applicazione di elaborare i messaggi, scrivere una semplice procedura che termina le conversazioni con un errore specifico dell'applicazione o semplicemente eliminare il servizio per terminare le conversazioni con un errore di Service Broker. Indipendentemente dal metodo scelto, la fine delle conversazioni consente alle applicazioni di avvio di terminare normalmente anziché attendere una risposta dal servizio che si sta arrestando.
Nei database che ospitano i servizi di avvio eliminare ogni route contenente l'indirizzo di rete per il servizio che si sta disinstallando. Eliminare le route per questo servizio nel msdb database di istanze che inoltrano messaggi per questo servizio. Se l'istanza che ospita il servizio contiene una route in msdb per il servizio, eliminare tale route.
Eliminare infine la definizione del servizio per assicurarsi che Service Broker non accetti più messaggi per il servizio. Eliminare i contratti, i tipi di messaggio e le code per il servizio, a meno che questi oggetti non vengano usati da un altro servizio nell'istanza. Se necessario, eliminare la stored procedure di attivazione per il servizio.