Service Broker 使用路由来确定向何处传递消息。 本部分介绍管理路由的注意事项。
管理 AutoCreatedLocal
默认情况下,每个用户数据库(包括 msdb)都包含路由 AutoCreatedLocal。 此路由匹配任何的服务名称和 Broker 实例,并指定消息应在当前实例中传递。 AutoCreatedLocal 的优先级低于显式指定服务名称或 Broker 实例的路由的优先级。
由于默认情况下存在 msdb Broker 会尝试从当前实例内的实例外部传递所有消息。 在许多情况下,数据库管理员通过删除 AutoCreatedLocal 来 msdb限制从实例外部访问服务。 然后,数据库管理员应为与远程实例进行通信的每个服务创建一个路由。
管理路由过期
在大多数情况下,路由不需要过期。 路由在路由对象存在时保持活动状态。 如果路由的目标地址发生更改,则管理员可以更改此路由以更新地址,也可以删除此路由。
但是,使用动态路由的应用程序可能会使用路由过期来确保路由信息保持最新状态。 Service Broker 不会从数据库中删除过期的路由。 使用路由过期的应用程序还应创建一个 SQL Server 代理作业,以定期删除已过期的路由对象。