Code

Le code vengono utilizzate per archiviare i messaggi. Quando Service Broker riceve un messaggio per un servizio, lo inserisce nella coda relativa al servizio stesso. L'applicazione riceve i messaggi inviati a un servizio dalla coda. Le code vengono gestite da Service Broker che visualizza una coda in un formato analogo a quello di una tabella.

Ogni servizio è associato a un'unica coda. Quando arriva un messaggio per un servizio, Service Broker inserisce il messaggio nella coda associata al servizio.

Ogni messaggio rappresenta una riga nella coda. Nella riga è riportato il contenuto del messaggio con le informazioni relative al tipo di messaggio, al servizio di destinazione, al contratto rispettato dal messaggio, alla convalida eseguita per il messaggio, alla conversazione di cui fa parte il messaggio e a informazioni interne della coda. Le informazioni presenti nella riga del messaggio vengono utilizzate dall'applicazione per identificare ogni messaggio in modo univoco ed elaborarlo in modo appropriato.

Le applicazioni ricevono i messaggi dalla coda relativa al servizio. Per ogni conversazione le code restituiscono i messaggi nell'ordine in cui il mittente li ha inviati. Tutti i messaggi restituiti da un'unica operazione di ricezione fanno parte di conversazioni che appartengono a un unico gruppo di conversazioni. Una coda in effetti contiene diversi set di messaggi correlati, uno per ogni gruppo di conversazioni. La coda restituisce un set di messaggi correlati ogni volta che l'applicazione esegue un'operazione di ricezione dalla coda. L'applicazione può ricevere messaggi per una conversazione o per un gruppo di conversazioni specifico. Le code non restituiscono i messaggi in un rigido ordine di tipo FIFO (First-In/First-Out), ma li restituiscono per ogni conversazione nell'ordine in cui sono stati inviati. Non è quindi necessario includere codice specifico nell'applicazione per recuperare l'ordine originale dei messaggi.

Una coda può essere associata a una stored procedure. In questo caso, quando nella coda sono presenti messaggi da elaborare, SQL Server attiva la stored procedure. SQL Server è in grado di avviare più istanze di una stored procedure, fino al numero massimo configurato. Per ulteriori informazioni, vedere Attivazione di Service Broker.