Applicazioni Service Broker

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Le applicazioni di Service Broker sono costituite da uno o più programmi e da oggetti di database utilizzati da tali programmi. Le applicazioni comunicano creando conversazioni tra componenti indipendenti denominati servizi e quindi scambiando 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 di Service Broker è costituita dagli elementi seguenti:

  • Uno o più programmi che implementano un'attività o un set correlato di attività. All'esterno di SQL Server, le applicazioni possono essere scritte in qualsiasi ambiente di programmazione in grado di eseguire istruzioni Transact-SQL in SQL Server. In SQL Server, le applicazioni possono essere scritte come stored procedure tramite Transact-SQL o un linguaggio conforme a Common Language Runtime (CLR).

  • Un servizio che espone le attività ad altri servizi. Un servizio è un oggetto Service Broker che fornisce un nome indirizzo 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 che contiene messaggi per il servizio.

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

DML di Service Broker

In genere, un'applicazione configura gli oggetti definizione del servizio al momento dell'installazione. Durante l'esecuzione dell'applicazione i messaggi vengono inviati e ricevuti tramite Service Broker Data Manipulation Language (DML). Le istruzioni DML rientrano in tre categorie generali: messaggi, conversazioni e gruppi di conversazioni:

Messaggi

In Service Broker sono disponibili le operazioni seguenti per supportare l'utilizzo dei messaggi:

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

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

Conversazioni

In Service Broker sono disponibili le operazioni seguenti per supportare l'utilizzo delle conversazioni:

  • L'istruzione BEGIN DIALOG CONVERSATION inizia una conversazione tra due servizi. Poiché la conversazione prevede esattamente due servizi, la conversazione è una interazione.

  • L'istruzione END CONVERSATION termina un lato della conversazione.

  • L'istruzione BEGIN CONVERSATION TIMER recapita un messaggio timer dell'interazione 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 trasmettere un messaggio per la conversazione ha avuto esito positivo, l'istruzione non restituisce una descrizione.

Gruppi di conversazione

In Service Broker sono disponibili due operazioni per l'utilizzo dei gruppi di conversazioni:

  • L'istruzione GET CONVERSATION GROUP restituisce l'identificatore del gruppo di conversazioni per il messaggio che verrà restituito successivamente in una coda. L'istruzione blocca anche il gruppo di conversazioni.

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

Vedi anche