【问题标题】:MSMQ Cluster losing messages on failoverMSMQ 群集在故障转移时丢失消息
【发布时间】:2012-01-17 03:22:42
【问题描述】:

我有一个 MSMQ 群集设置,其中的节点(主动/被动)共享一个驱动器。

这是我正在执行的测试。我将消息发送到可恢复的队列。然后,我使 MSMQ 群集组脱机,然后再次使其联机。

结果:消息还在。

然后我通过将组移动到节点 2 来模拟故障转移。成功转移,但消息不存在。

我将消息作为可恢复发送,并且 MSMQ 群集组具有两个节点都可以访问的驱动器。

有人吗?

更多信息:

Quorum 驱动器仅保留在节点 1 上。

我有两个服务/应用程序组。一个是 MSMQ,一个是通用服务组。

更多信息:

当节点 1 处于活动状态时,我会向它发送满满的消息。故障转移到节点 2。02 队列中有 0 条消息。然后我故障转移回 01,消息在 01 中。

【问题讨论】:

    标签: msmq cluster-computing failover


    【解决方案1】:

    您没有集群 MSMQ 或没有正确使用集群 MSMQ。 您正在查看的是本地 MSMQ 服务。

    http://blogs.msdn.com/b/johnbreakwell/archive/2008/02/18/clustering-msmq-applications-rule-1.aspx

    干杯 约翰

    ===================================

    好的,可能正在使用的驱动器号没有始终如一地实现。

    1. 集群 MSMQ 使用的存储位置是什么?
    2. 如果您在资源管理器中同时从节点 1 和节点 2 打开此存储位置,文件夹内容是否完全相同?如果您通过节点 1 的资源管理器窗口创建文本文件,它是否会在节点 2 的资源管理器窗口中刷新后出现?

    【讨论】:

    • 这是我的第一个想法。但后来我看了看服务。两个节点上的“本地”MSMQ 服务未运行。集群 MSMQ 服务正在运行...取决于活动节点。
    • OK,那么集群服务没有配置为使用共享文件存储;例如,如果 MSMQ 配置为使用 c:\windows\system32\msmq\storage 而不是 Q:\storage。节点 1 的 C:\ 显然与节点 2 的 C:\ 不同,因此节点 1 上的任何消息仅对节点 1 上运行的集群 MSMQ 服务可见,反之亦然。
    • 有趣...我如何确认它是使用本地存储还是共享存储?
    • 不幸的是我没有一个方便的 但它应该在集群消息队列资源的属性中。也可以在注册表中查看 - 本地服务使用此处指定的位置 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters 和集群服务使用 HKey_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Clustered QMs\MSMQ$MSMQ Service\Parameters
    • {sigh} 两个节点上的注册表(当处于活动状态时)表明存储在共享驱动器上。没有任何东西指向“C:\”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    相关资源
    最近更新 更多