gpt4 book ai didi

sql-server - Service Broker 两端的 session 句柄是否应该相同?

转载 作者:行者123 更新时间:2023-12-02 20:23:41 27 4
gpt4 key购买 nike

我是 Service Broker 新手。我们已经建立了一个看起来运行良好的开发系统。

我注意到的一件奇怪的事情是,对于同一消息,Service Broker 两端的审核表中的对话句柄是不同的。我假设发起方和目标端将使用相同的对话句柄,所以我想知道我们是否配置错误。

单条消息在对话的每一端都有不同的对话句柄,这正常吗?

最佳答案

有一个 conversation_id,它在两个端点上都是相同的。

还有conversation_handle,它在每个端点必须不同。考虑一个非常简单的场景,即发起者和目标位于同一个数据库中。如果 conversation_handle 相同,那么当您发出 SEND 时,您指的是哪个端点就会不明确。您是从发起者发送到目标,还是从目标发送到发起者?如果 handle 一样的话是无法区分的!因此句柄必须不同。

您始终在应用程序中与 conversation_handle 进行交互。这是您传递给 T-SQL 语句( SENDENDMOVE )的值,这就是 BEGIN DIALOG 的值。返回。句柄值永远不会离开框(不是消息传输格式的一部分)。

您主要在调试时使用conversation_id。它可用于识别远程计算机上的对等对话端点,还可用于识别 SQL Profiler 中消息相关事件中的对话 ( Broker Event Category )。

过了这个顿悟时刻后,很快您就会对 conversation_group 始终是本地的并且不会通过网络传输这一事实感到困惑。之前有人问过这里,请阅读13140506434464 .

还有一个 ID:message_id。这是在SEND期间分配给消息的。它通过电线传输,仅用于调试和故障排除。例如。它的特点是 Broker:Forwarded Message Dropped Event Class .

关于sql-server - Service Broker 两端的 session 句柄是否应该相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19415724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com