Creare applicazioni di Service Broker

Si applica a:SQL ServerIstanza gestita di SQL di Azure

In questa sezione viene fornita una panoramica generale della struttura di un'applicazione di Service Broker, vengono descritte alcune delle strategie più comuni per l'avvio di un'applicazione che utilizza Service Broker e vengono illustrati i passaggi di base per ricevere ed elaborare messaggi.

L'applicazione per un servizio di avvio usa l'istruzione BEGIN DIALOG per specificare informazioni sui servizi in ogni endpoint e sul contratto di servizio che l'applicazione userà per comunicare. L'applicazione usa l'istruzione SEND per inviare il primo messaggio della conversazione al servizio di destinazione. L'applicazione deve essere preparata per ricevere ed elaborare messaggi da Service Broker, anche se il contratto non consente al servizio di destinazione di restituire messaggi. L'applicazione di avvio viene spesso implementata in due componenti separati. Un componente inizia la conversazione; l'altro componente elabora i messaggi che arrivano in coda.

L'applicazione per un servizio di destinazione riceve ed elabora i messaggi dal servizio di origine. L'applicazione deve inoltre essere preparata per ricevere ed elaborare messaggi da Service Broker.

A seconda delle esigenze del servizio, la parte dell'applicazione che elabora la coda può essere avviata in diversi modi. Per altre informazioni sull'avvio di un'applicazione che usa Service Broker, vedere Scegliere una strategia di avvio.

Tuttavia l'applicazione viene avviata, l'applicazione avvia una transazione e usa l'istruzione per annullare la RECEIVE coda di un messaggio. L'applicazione estrae i dati dai messaggi ed esegue qualsiasi elaborazione necessaria. Se necessario, l'applicazione usa l'istruzione SEND per inviare messaggi all'altro lato della conversazione. L'applicazione esegue quindi il commit della transazione. Per un'efficienza, l'applicazione potrebbe elaborare più messaggi all'interno della stessa transazione. I servizi che mantengono lo stato usano spesso l'istruzione GET CONVERSATION GROUP per bloccare un gruppo di conversazioni, recuperare lo stato per il gruppo di conversazioni e quindi elaborare più messaggi per il gruppo di conversazioni.

La conversazione continua, usando SEND istruzioni e RECEIVE per trasmettere messaggi tra gli endpoint. In qualsiasi momento, se necessario, entrambi i partecipanti alla conversazione possono usare BEGIN DIALOG per avviare una conversazione con un altro servizio per ottenere informazioni aggiuntive. Ad esempio, un'applicazione che elabora una notifica degli eventi potrebbe avviare un'altra conversazione con un servizio che fornisce informazioni sul personale per recuperare le informazioni di contatto correnti prima di inviare un avviso.

Quando la conversazione ha raggiunto lo scopo, l'applicazione nell'endpoint appropriato userà un'istruzione END CONVERSATION per terminare la conversazione. L'altro partecipante riceve il END CONVERSATION messaggio e invia un END CONVERSATION messaggio anche sul lato. Una volta che entrambi i partecipanti hanno inviato END CONVERSATION messaggi, la conversazione termina.

Se si verifica un errore, un partecipante della conversazione potrebbe indicare un errore terminando la conversazione usando la WITH ERROR clausola . L'utilizzo della WITH ERROR clausola termina la conversazione e invia un messaggio di errore di Service Broker all'altro partecipante della conversazione.

Se Service Broker rileva un errore o la durata della conversazione scade, Service Broker termina la conversazione e restituisce un messaggio di errore ai partecipanti attivi. Se Service Broker non riesce a stabilire una conversazione, l'unico partecipante attivo è l'applicazione di avvio e l'errore viene recapitato al servizio di avvio. Se un partecipante ha già terminato la conversazione, il messaggio di errore viene recapitato all'altro partecipante. In caso contrario, l'errore viene recapitato a entrambi i partecipanti della conversazione.

In questa sezione

Article Description
Scegliere una strategia di avvio Vengono descritte alcune delle strategie più comuni per l'avvio di un'applicazione che usa Service Broker.
Struttura dell'applicazione Service Broker Descrive i passaggi di base per ricevere ed elaborare i messaggi.