【问题标题】:Service Broker configuration服务代理配置
【发布时间】:2012-06-22 12:40:39
【问题描述】:

我已经使用 Windows 身份验证配置了两个 SQL Server 2008 实例之间的 Service Broker 通信。我正在从发起者服务向目标服务发送一条消息,然后结束目标中的对话。由于目标没有向发起者发送回复消息,目标实例是否需要配置任何路由来向发起者发送系统生成的确认消息?我可以仅依靠 Target 实例中的对话句柄与 Initiator 进行通信吗?

提前致谢。

【问题讨论】:

    标签: sql-server sql-server-2008 service-broker


    【解决方案1】:

    在两个方向上总是需要一条路线。即使您从不显式从目标发送消息,目标仍然需要为收到的每条消息发送隐式确认。

    但在您的情况下,您正在发送显式消息:END CONVERSATION 发送 http://schemas.microsoft.com/SQL/ServiceBroker/EndDialog 消息。

    【讨论】:

    • 对正在发送的 EndDialog 消息的深入了解。
    • 谢谢 Remus...我已经在目标中定义了路线。创建路由 [InitiatorServiceRoute] 授权 [dbo] WITH SERVICE_NAME = N'InitiatorService',BROKER_INSTANCE = N'093A3836-F45C-43D6-915C-A347BEFEC2D8' 地址 = N'TCP://192.168.49.23:7000'。代理实例标识符是可选的吗?原因只是为了部署数据库的构建过程。由于现在对 Initiator 和 Target 数据库的服务代理标识符信息存在循环依赖,这使得我们的构建过程变得复杂。
    • 代理实例是可选的。仅当您有许多 DB 托管相同服务且 SSB 需要区分 哪个 托管特定会话的横向扩展部署方案时才需要。除非明确需要(您不需要它),否则最好从路由中省略代理实例。
    • 何时需要代理实例,请参见msdn.microsoft.com/en-us/library/ms166090%28v=sql.105%29.aspx 中的示例 5。
    猜你喜欢
    • 2011-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多