Nachrichtentypen
Anwendungen, die Service Broker verwenden, kommunizieren durch den Austausch von Nachrichten innerhalb einer Konversation. Die Teilnehmer an einer Konversation müssen sich auf den Namen und den Inhalt jeder Nachricht einigen. Ein Nachrichtentypobjekt definiert einen Namen für einen Nachrichtentyp sowie den Datentyp, den die Nachricht enthält. Nachrichtentypen werden dauerhaft in der Datenbank gespeichert, in der sie erstellt wurden. Sie können einen identischen Nachrichtentyp in jeder Datenbank erstellen, die an der Konversation teilnimmt.
Jeder Nachrichtentyp gibt eine Überprüfung an, die von SQL Server für Nachrichten dieses Typs ausgeführt wird. SQL Server kann überprüfen, ob die Nachricht gültiges XML enthält, ob die Nachricht XML enthält, das einem bestimmten Schema entsprechen, oder ob die Nachricht überhaupt keine Daten enthält. Für beliebige oder binäre Daten kann der Nachrichtentyp angeben, dass SQL Server den Inhalt der Nachricht nicht überprüft.
Die Überprüfung wird ausgeführt, wenn der Zieldienst die Nachricht empfängt. Wenn der Nachrichteninhalt nicht der angegebenen Überprüfung entspricht, gibt Service Broker eine Fehlermeldung an den Dienst zurück, der die Nachricht gesendet hat.
Wichtig |
---|
Unabhängig von der angegebenen Überprüfung muss eine Anwendung überprüfen, dass der Nachrichteninhalt der Anwendung entspricht, bevor das Programm die Daten verwendet. |
Für einen leeren Nachrichtentyp darf der Textteil der Nachricht keine Daten enthalten. Für einen Nachrichtentyp, der wohlgeformtes XML angibt, muss der Textteil der Nachricht wohlgeformtes XML sein. Für einen Nachrichtentyp, der XML angibt, das einer bestimmten Schemaauflistung entspricht, muss die Nachricht wohlgeformtes XML enthalten, das für eines der Schemas in der Auflistung gültig ist. Für einen Nachrichtentyp, der keine Überprüfung angibt, akzeptiert SQL Server beliebigen Nachrichteninhalt. Hierzu zählen binäre Daten, XML oder leere Nachrichten.
Service Broker bietet einen integrierten Nachrichtentyp namens DEFAULT an. Wenn der Nachrichtentyp in einem SEND-Befehl von Service Broker nicht angegeben ist, verwendet das System den Nachrichtentyp DEFAULT.
Service Broker enthält Systemnachrichtentypen, die verwendet werden, um Fehler und den Status von Dialogen zu melden. Weitere Informationen finden Sie unter Brokersystemmeldungen.