Applicazioni di Service Broker

Si applica a: SQL Server (tutte le versioni supportate) Istanza gestita di SQL di Azure

Le applicazioni di Service Broker sono costituite da uno o più programmi e dagli oggetti di database usati da tali programmi. La comunicazione tra le applicazioni avviene tramite la creazione di conversazioni tra componenti indipendenti definiti servizi e lo scambio di messaggi all'interno di tali conversazioni. Le applicazioni usano Service Broker eseguendo istruzioni Transact-SQL in un database SQL Server.

Componenti dell'applicazione

Un'applicazione Service Broker è costituita da:

  • Uno o più programmi che mettono a disposizione un'attività o un set di attività correlate. All'esterno di SQL Server, le applicazioni possono essere scritte in qualsiasi ambiente di programmazione che può eseguire istruzioni Transact-SQL in SQL Server. All'interno di SQL Server, le applicazioni possono essere scritte come stored procedure usando Transact-SQL o un linguaggio conforme a CLR (Common Language Runtime).

  • Un servizio che espone le attività ad altri servizi. Un servizio è un oggetto Service Broker che fornisce un nome indirizzabile per un set di attività correlate. Altri servizi avviano conversazioni con questo servizio per eseguire le attività.

  • Un contratto e i tipi di messaggio che definiscono la struttura e la direzione dei messaggi utilizzati nelle comunicazioni tra i servizi.

  • Una coda in cui inserire i messaggi per il servizio.

  • Se si desidera, route e associazioni a servizi remoti. Le route associano un indirizzo di rete al nome di un servizio remoto. Le associazioni ai servizi remoti associano un nome di servizio a un'entità di database locale. Service Broker usa il certificato associato all'entità specificata per gestire l'autorizzazione per il servizio remoto e la crittografia dei messaggi scambiati con il servizio remoto. Service Broker consente di configurare le route e le associazioni di servizio remote mentre l'applicazione è in distribuzione senza richiedere modifiche all'applicazione. In questo modo gli amministratori possono spostare i servizi e modificare le credenziali di sicurezza senza apportare modifiche al codice dell'applicazione. Per altre informazioni sulla configurazione di route e associazioni di servizi remoti, vedere Amministrazione (Service Broker).

DML per Service Broker

In genere, nell'applicazione vengono impostati gli oggetti di definizione del servizio al momento dell'installazione. Durante l'esecuzione, l'applicazione invia e riceve messaggi usando Service Broker Data Manipulation Language (DML). Le istruzioni DML possono essere suddivise in tre categorie di vasta portata: messaggi, conversazioni e gruppi di conversazioni.

Messaggi

Service Broker fornisce le operazioni seguenti per supportare l'uso dei messaggi:

  • L'istruzione SEND invia un messaggio su una conversazione specifica.

  • L'istruzione RECEIVE riceve uno o più messaggi da una coda. Tutti i messaggi ricevuti appartengono allo stesso gruppo di conversazione.

Conversazioni

Service Broker fornisce le operazioni seguenti per supportare l'uso delle conversazioni:

  • L'istruzione BEGIN DIALOG CONVERSATION avvia una conversazione tra due servizi. Poiché la conversazione interessa esattamente due servizi, costituisce un dialogo.

  • L'istruzione END CONVERSATION termina un lato di una conversazione.

  • L'istruzione BEGIN CONVERSATION TIMER invia un messaggio relativo al timer del dialogo a un lato di una conversazione in un momento specifico.

  • L'istruzione GET_TRANSMISSION_STATUS restituisce una descrizione dell'ultimo errore di trasmissione per una conversazione. Se l'ultimo tentativo di trasmissione di un messaggio per la conversazione è stato eseguito correttamente, l'istruzione non restituisce una descrizione.

Gruppi di conversazioni

Service Broker offre due operazioni per l'uso dei gruppi di conversazioni:

  • L'istruzione GET CONVERSATION GROUP restituisce l'identificatore del gruppo di conversazioni per il messaggio successivo da ricevere in una coda. L'istruzione blocca anche il gruppo di conversazioni.

  • L'istruzione MOVE CONVERSATION sposta una conversazione da uno gruppo di conversazioni a un altro. L'istruzione blocca sia il gruppo di conversazioni originale che il gruppo di conversazioni di destinazione.

Vedi anche