Поделиться через


Типы сообщений

Приложения, использующие компонент 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 используются системные типы сообщений для передачи сведений об ошибках и о состоянии диалогов. Дополнительные сведения см. в разделе Системные сообщения компонента Service Broker.