消息类型
使用 Service Broker 的应用程序之间通过互相发送组成会话的消息进行通信。会话的各参与者必须对每个消息的名称和内容取得一致。“消息类型对象”定义消息类型的名称并定义消息所包含的数据的类型。消息类型保存在创建它的数据库中。在参与会话的每个数据库中应创建相同的消息类型。
每种消息类型指定 SQL Server 对该类型消息所执行的验证。SQL Server 可验证消息是否包含有效的 XML、消息是否包含符合特定架构的 XML 或者消息中是否根本没有数据。对于任意数据或二进制数据,消息类型可指定 SQL Server 不验证消息的内容。
当目标服务收到消息时,开始执行验证。如果消息的内容与指定的验证不匹配,则 Service Broker 会向发送该消息的服务返回一条错误消息。
重要提示 |
---|
无论怎样指定验证,应用程序都必须在程序使用数据之前验证消息的内容是否适合它。 |
对于空消息类型,消息的正文一定不能包含数据。对于指定正确 XML 格式的消息类型,消息的正文必须为格式正确的 XML。对于指定符合特定架构集合的 XML 的消息类型,消息必须包含格式正确的 XML,且该 XML 对集合中的架构之一有效。对于没有指定验证的消息类型,SQL Server 可接受任何消息内容。这包括二进制数据、XML 或空消息。
Service Broker 提供一个名为 DEFAULT 的内置消息类型。如果未在 Service Broker SEND 命令中指定消息类型,则系统将使用 DEFAULT 消息类型。
Service Broker 包含用于报告错误和对话状态的系统消息类型。有关详细信息,请参阅 Broker 系统消息。