管理 Service Broker

在 SMO 中,Service Broker 对象在 Microsoft.SqlServer.Management.Smo.Broker 命名空间中提供,该命名空间要求引用 Microsoft.SqlServer.Smo.dll。为支持类信息,还要求对 Microsoft.SqlServer.ServiceBrokerEnum.dll 的引用。

SMO 提供一组 Service Broker 对象,这些对象允许以编程方式管理 Service Broker 的实现 (DDL)。这包括定义消息类型、约定、队列和服务。因为 SMO 是并不针对数据操作、发送和接收的管理工具,所以 SMO 不支持 Service Broker 消息。

在 SMO 中,ServiceBroker 对象是顶级类,所有 Service Broker 功能都位于其下。Service Broker 实现是参与分布式消息处理应用程序的每个数据库所必需的。因此,ServiceBroker 对象是 Database 对象的子级。

ServiceBroker 对象包含用于定义 Service Broker 实现的以下对象的集合:

  • MessageType 对象表示定义消息内容的消息类型。

  • MessageTypeMapping 对象表示指定给定转换中消息的方向和类型的约定。

  • ServiceQueue 对象在发送消息前和收到消息后存储消息。它们提供服务间的异步通信以及其他好处,例如自动锁定同一会话组中的消息。

  • BrokerService 对象表示 Service Broker 服务,这些服务是可寻址的会话端点。Service Broker 消息在服务间发送。服务指定一个队列来保存消息,还指定一些约定,约定指明该服务可作为“目标”。

  • RemoteServiceBinding 对象表示 Service Broker 在与某一远程服务进行通信时用于安全性和身份验证的设置。

  • ServiceRoute 对象表示 Service Broker 路由,它包含所定义的服务和数据库的位置信息。路由是消息传递所必需的。默认情况下,每个数据库都包含一个路由,该路由将位置指定为 SQL Server 的当前实例。