Tipi di messaggi

Le applicazioni che utilizzano Service Broker comunicano mediante lo scambio di messaggi nell'ambito di una conversazione. I partecipanti a una conversazione devono concordare il nome e il contenuto di ogni messaggio. Un oggetto tipo messaggio definisce il nome per un tipo di messaggio e il tipo di dati contenuto nei messaggi di questo tipo. I tipi di messaggi vengono mantenuti nel database in cui vengono creati. In ogni database che partecipa a una conversazione è necessario creare un tipo di messaggio identico.

Ogni tipo di messaggio specifica la convalida eseguita da SQL Server per i messaggi di quel tipo. SQL Server può convalidare la presenza di codice XML valido o di un formato XML conforme a uno schema particolare oppure la mancanza di dati. Per i dati arbitrari o binari il tipo di messaggio può specificare che la convalida del contenuto del messaggio non viene eseguita da SQL Server.

La convalida viene eseguita quando il servizio di destinazione riceve il messaggio. Se il contenuto del messaggio non corrisponde alla convalida specificata, Service Broker restituisce un messaggio di errore al servizio che ha inviato il messaggio.

Nota importanteImportante

Indipendentemente dal tipo di convalida specificato, un'applicazione deve verificare che il contenuto di un messaggio sia appropriato per l'applicazione prima dell'utilizzo dei dati da parte del programma.

Per un tipo di messaggio vuoto, nel corpo del messaggio non devono essere presenti dati. Per un tipo di messaggio che specifica codice XML corretto, nel corpo del messaggio deve essere presente un formato XML corretto. Per un tipo di messaggio che specifica un formato XML conforme a una raccolta di schemi particolare, nel messaggio deve essere presente un formato XML corretto e valido per uno degli schemi contenuti nella raccolta. Per un tipo di messaggio che non specifica la convalida, SQL Server accetta qualsiasi contenuto del messaggio, tra cui dati binari, XML o messaggi vuoti.

Service Broker include il tipo di messaggio predefinito DEFAULT. Se il tipo di messaggio non viene specificato in un comando SEND di Service Broker, viene utilizzato il tipo DEFAULT.

Service Broker include tipi di messaggi di sistema, utilizzati per segnalare gli errori e lo stato dei dialoghi. Per ulteriori informazioni, vedere Messaggi di sistema di Service Broker.