Типы сообщений
Приложения, использующие компонент Service Broker, взаимодействуют друг с другом посредством обмена сообщениями в рамках диалога. Участники диалога должны прийти к соглашению относительно имени и содержания каждого сообщения. Объект «тип сообщения» определяет имя типа сообщения и тип данных, которые содержатся в этом сообщении. Типы сообщений сохраняются в той базе данных, где был создан соответствующий тип сообщений. В каждой базе данных, участвующей в диалоге, создаются идентичные типы сообщений.
В каждом типе сообщений задается выполняемая SQL Server процедура проверки правильности сообщений данного типа. SQL Server может выполнять проверки на наличие в сообщении допустимого кода XML, на соответствие содержащегося в сообщении кода XML определенной схеме или на наличие в сообщении каких-либо данных. Для произвольных или двоичных данных тип сообщения может содержать указание на то, что SQL Server не выполняет проверки правильности содержимого соответствующего сообщения.
Проверка правильности выполняется в тот момент, когда служба-адресат получает сообщение. Если содержание сообщения не соответствует требованиям, указанным в процедуре проверки, компонент Service Broker возвращает сообщение об ошибке службе, отправившей сообщение.
Важно! |
---|
Независимо от того, по каким критериям осуществляется проверка правильности, до того как приложение приступит к использованию содержащихся в сообщении данных, оно должно удостовериться в релевантности содержания сообщения для данного приложения. |
Текст сообщения, относящегося к типу пустых сообщений, не должно содержать данных. Тело сообщения, относящегося к типам сообщений, которые предусматривают использование правильно сформированного кода XML, должно быть составлено с помощью корректного кода XML. Тело сообщения, относящегося к типам сообщений, которые предусматривают использование определенной коллекции схем, должно содержать правильный код XML, допустимый для одной из схем набора. Если критерии для проверки правильности сообщений не заданы, SQL Server принимает сообщения независимо от их содержания, включая сообщения, содержащие двоичные данные, код XML, а также пустые сообщения.
В компоненте Service Broker имеется встроенный тип сообщений с именем DEFAULT. Если тип сообщения не указан в команде SEND компонента Service Broker, система использует тип сообщения DEFAULT.
См. также
Основные понятия
Контракты
Сообщения компонента Service Broker
Другие ресурсы
CREATE MESSAGE TYPE (Transact-SQL)