当前位置: 首页 > 知识库问答 >
问题:

使用dmpmqcfg的远程队列管理器备份不起作用

杜良骏
2023-03-14
dmpmqcfg -m <Queue Manager> -r <remote qmgr> -x all -a -o mqsc > D:\RemoteQueueManagerBackup\RemoteQmgr.txt

在运行此命令之前,我在队列管理器两端创建了一个服务器和请求者通道,当执行上述命令时,这些通道将进入运行状态,但无法进行备份。

对很少的队列管理器来说,它可以正常工作,对很少的队列管理器来说,它不能工作。我检查了运行qmgr和其他属性之间的所有属性,两者看起来都一样。

更新

    null

检查远程死信队列原因:mqrc_persistence_not_alloved

共有1个答案

何睿范
2023-03-14

您没有提到通道及其XMITQ的详细信息。为了让消息到达远程机器并让回复返回,每个QMgr都需要能够解析到另一个QMgr的路径。这意味着某些东西必须具有远程QMGR的名称。它必须是XMitQ本身,或者是指向XMitQ的QMgr别名。

例如,您有 。本地QMgr可能有一个名为 的传输队列,用于解析目标。由于您没有从dmpmqcfg报告任何错误,我将假定消息发送正常。

这意味着信息不会回来了。这可能是因为远程QMGR的XMitQ的名称类似于 .XMitQ 而不是 。这可以通过定义QMgr别名来解决:

DEF QREMOTE('<Queue Manager>') +
    XMITQ('<Queue Manager>.XMITQ') +
    RNAME(' ') +
    RQMNAME('<Queue Manager>') + 
    REPLACE

如果这不能解决问题,请提供补充信息,包括:

  • dmpmqcfg
  • 返回的任何错误
  • 是否启用DLQ并定义指定名称的队列
  • 两端的DLQ上是否有邮件
  • 手动启动时两个QMGR之间的通道是否运行(这可能是触发问题,而不是名称解析)
  • 所涉及的QMgrs平台
  • 错误日志中的任何相关条目,包括auths错误(例如,mqm在Linux上是有效的ID,但在Windows上不是,因此如果发送的QMgr是Linux和远程QMgr窗口,则在此场景中会生成auths错误)

更新响应有问题的其他信息
,所以看起来您至少有几个问题。您发现的一个问题是,临时动态队列不接受持久消息。如果你仔细想想,这是完全有道理的。如果消息是持久的,这会告诉MQ采取一切预防措施防止丢失它。但是,当释放最后一个输入句柄时,临时动态队列将被删除,丢弃它所保存的任何消息。

至于剩下的几个QMGR,您需要再次运行相同的诊断。检查错误消息、DLQ两端的深度、通道运行、auth错误。请记住,资源错误、auth错误、路由问题等可能发生在任何一端,因此请在两个QMGRS上查找错误消息和路由错误消息。此外,通过向已知队列(如system.default.local.queue或应用程序队列)发送往返于两个QMGR的消息来验证通道。

在玩“我的消息在哪里”游戏时,另一个有用的技术是通过在发送命令之前停止两个方向的通道来跟踪消息流。然后可以运行dmpmqcfg并查看出站XMitQ的深度,以验证是否发送了命令。(如果您想要浏览消息,您必须GET-enable XMitQ,因为通道代理get-disable它。这将允许您验证它们的持久性、过期值等。)

假设命令看起来正常,您只启动出站通道,并让消息流到远程QMgr,在那里处理它们。由于返回通道仍处于停止状态,因此应答将堆叠在返回的XMITQ中。您可以在那里查看它们,以确定它们的持久性、过期以及命令的返回代码/结果。如果它们看起来不错,启动通道,然后在本地QMGR上寻找它们。

 类似资料:
  • 我在服务器上得到的日志是“user[]from host localhost not have administration access#]”,但我已经更改了管理密码并用它登录。所以我不明白为什么我的用户是空的。而且,尽管我认为这与此无关,但它说证书已经过期。

  • null 但我无法连接。我得到这样的错误消息“无法建立到队列管理器的连接-原因2538.(AMQ4059)"。我能做什么?

  • 问题内容: 当我尝试使用以下命令触发构建时,出现以下错误: 卷曲http:// jenkins_server:port / jenkins / job / job_name / build?token = token_name 输出: 需要验证 <-您的身份验证为:您所在的匿名 组: 权限,你需要有(但没有):hudson.model.Hudson.Read …这是暗示:hudson.securi

  • 我使用Hazelcast作为分布式键值存储。我将储存大约。100K密钥,为了加强hazelcast集群节点之间的数据一致性,我使用了与IMap作为分布式数据结构的同步备份。 在2个Unix盒中运行包含2个节点的hazelcast集群,问题是:在任一个节点中加载1000条记录的示例数据时,我看不到同步备份发生,尽管我已经明确地将同步备份设置为1,并从日志和hazelcast管理中心对其进行了验证。当

  • 我正在尝试为团队笔记设置一个服务器,我想知道自动备份其数据的最佳方式是什么,也就是我的笔记。 目前,我计划以docker映像运行服务器。 docker映像将由托管服务(如谷歌)托管。 我找到了一个适合我需求的免费托管服务,但它不允许将卷安装到docker映像。 因此,我认为备份数据的唯一方法是将它们传输到其他一些云服务。 然而,这要求我必须在我的docker映像中存储某种敏感数据进行身份验证,显然

  • 我正在尝试为没有ssl的Kafka集群启用SASL用户名和密码。我按照这个Stackoverflow的步骤: Kafka SASL 动物园管理员身份验证 SASL认证似乎对Kafka经纪人有效。消费者和生产者在写入或读取主题之前必须进行身份验证。到目前为止一切顺利。 问题在于在 kafka 上创建和删除主题。例如,当我尝试使用以下命令时: 我能够列出kafka集群中的所有主题,并创建或删除任何无需