Tipi di messaggio

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Le applicazioni che usano 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 del tipo di messaggio definisce un nome per un tipo di messaggio e definisce il tipo di dati contenuti nel messaggio. I tipi di messaggio vengono salvati nel database in cui viene creato il tipo di messaggio. Si crea un tipo di messaggio identico in ogni database che partecipa a una conversazione.

Ogni tipo di messaggio specifica la convalida eseguita da SQL Server per i messaggi di tale 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.

Importante

Indipendentemente dalla convalida specificata, un'applicazione deve verificare che il contenuto di un messaggio sia appropriato per l'applicazione, prima che il programma usi i dati.

Per un tipo di messaggio vuoto, il corpo del messaggio non deve contenere dati. Per un tipo di messaggio che specifica il codice XML ben formato, il corpo del messaggio deve essere in codice XML ben formato. Per un tipo di messaggio che specifica il codice XML conforme a una particolare raccolta di schemi, il messaggio deve contenere il codice XML ben formato valido per uno degli schemi dell'insieme. Per un tipo di messaggio che non specifica la convalida, SQL Server accetta qualsiasi contenuto del messaggio, inclusi dati binari, codice 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 usato il tipo DEFAULT.

Service Broker include tipi di messaggi di sistema, usati per segnalare gli errori e lo stato dei dialoghi. Per altre informazioni, vedere Messaggi di sistema del broker.

Vedi anche