【问题标题】:Clustered MSMQ Issue群集 MSMQ 问题
【发布时间】:2013-02-04 17:03:48
【问题描述】:

我在群集环境中遇到 MSMQ 问题。我有以下设置:

在 Windows 故障转移中设置了 2 个节点,我们将它们称为“节点 A”和“节点 B”。

然后我设置了一个 MSMQ 的集群实例,我们称之为“MSMQ 实例”。

我还设置了 DTC 的集群实例,我们称之为“DTC 实例”。

在 DTC 实例中,我已允许本地访问以及通过集群实例进行访问,基本上我已取消所有身份验证以进行测试。

我还创建了我们内部应用程序的集群实例,我们称之为“应用程序实例”。在此 Application 实例中,我添加了其他资源,这些资源是应用程序使用的其他服务以及 Net.MSMQ 适配器。

问题.......

当我似乎集群应用程序实例时,它似乎总是将所有者设置为我正在使用的相反节点,所以如果我在节点 A 上创建集群实例,它总是将当前所有者设置为节点 B,但这不是问题。

我遇到的问题是,只要应用程序实例在节点 B 上运行,MSMQ 似乎就可以工作。

出站队列在本地创建,接收消息,然后通过 MSMQ 集群进行处理。

如果我随后故障转移到节点 A,MSMQ 将拒绝工作。未创建出站队列,因此未处理任何消息。

我在事件查看器中收到错误:

“版本检查失败,错误为:'Unrecognized error -1072824309 (0xc00e000b)'。无法检测到 MSMQ 的版本所有在排队通道上的操作都将失败。确保 MSMQ 已安装并且可用”

如果我随后故障转移回节点 B,它就可以工作。

应用程序已设置为使用 MSMQ 实例,并且所有权限均正确。

我是否需要有一个 DTC 的集群实例,或者我可以将它配置为 MSMQ 实例中的资源吗?

任何人都可以对此有所了解吗?

【问题讨论】:

    标签: msmq


    【解决方案1】:

    是的,您需要进行集群 DTC 设置。

    对于您的集群 MSMQ 实例,您需要将集群 DTC 配置为“dependendy”右键单击 MSMQ -> Properties -> Dependencies

    我不知道这是否在所有情况下都是强制性的,但在我们的集群上,我们还有一个文件共享配置为 MSMQ 的依赖项。据我了解,这应确保 MSMQ 所需的临时文件在节点切换后仍然可用。

    此外,我发现这里有两篇文章对设置集群节点很有帮助。它们可能有助于逐步确认您的配置是否正确:

    【讨论】:

      猜你喜欢
      • 2018-12-10
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多