如何在 IBM MQ 中使用“dmpmqcfg”获取“saveqmgr -s”功能

Seb*_*Net 1 admin mq ibm-mq

我习惯于从没有系统对象的队列管理器中转储对象。

但是现在我必须使用dmpmqcfg并且我找不到一个标志来从输出中删除这些系统对象。

MQ 版本是 7.5.0.1

我现在使用的命令: dmpmqcfg -m SMQ -t all -x object

Possible flags :     c:\>  dmpmqcfg -h

Usage: dmpmqcfg [-m QMgrName] [-n ObjName] [-t ObjType]
               [-x ExportType] [-o Format] [-a] [-z]
               [-s MsgSeqNo] [-q RplQName] [-r RmtQMgrName]
               [-c default|-c DEFINE CHANNEL..]

 -m   Queue manager name.
 -n   Object name or a generic object name.
 -t   Object type:
        all, authinfo, channel, clntconn, comminfo, listener,
        namelist, process, queue, qmgr, service, topic.
 -x   Export type:
        all, object, authrec, chlauth, sub.
 -o   Format: mqsc, 1line, setmqaut, grtmqmaut.
 -a   Dump all attributes.
 -z   Suppress warnings.
 -s   Reset channel message sequence number
 -q   Reply to queue name, default SYSTEM.DEFAULT.MODEL.QUEUE
 -r   Remote queue manager name (queued mode)
 -c   Client connection:
        default, DEFINE CHANNEL(chlname) CHLTYPE(CLNTCONN) ...
Run Code Online (Sandbox Code Playgroud)

T.R*_*Rob 5

saveqmgr命令是一个 SupportPac,它在 MQ 开发实验室之外维护,并通过MQSeries.netVienna MQ List Server与 MQ 用户社区密切交互。尽管多年来它是获取队列管理器配置文件的完整备份的唯一方法,但它从来不是产品的受支持组件。

dmpmqcfg命令是一种完全受支持的方法,用于备份队列管理器的完整配置,由 MQ 开发实验室维护。它的要求是在与参与 Early Access Program(实际上是 MQ 的 Beta 计划)的客户的密切沟通下制定的。尽管与saveqmgr它有一些重叠,但它并不打算直接替代该程序。具体来说,由于它主要用于创建完整备份,因此无法省略 SYSTEM.* 对象。

您可以通过使用该-o 1line选项并过滤掉SYSTEM.*对象来模拟相同的事情。

视窗:

dmpmqcfg -m [qmgr] -o 1line | findstr /V "('SYSTEM"
Run Code Online (Sandbox Code Playgroud)

UNIX/Linux:

dmpmqcfg -m [qmgr] -o 1line | grep -v "('SYSTEM"
Run Code Online (Sandbox Code Playgroud)

请注意,这会过滤掉任何包含 的行('SYSTEM,即使该字符串位于描述或其他字段中。如果您想完全确定只有命名的对象SYSTEM.*,则需要更加明确并使用多个过滤器,如下所示:

dmpmqcfg -m [qmgr] -o 1line | grep -v " CHANNEL('SYSTEM" | grep -v " QLOCAL('SYSTEM" | grep -v " QALIAS('SYSTEM"...
Run Code Online (Sandbox Code Playgroud)

我把它留给读者作为练习,以添加所有可能的对象类型以过滤到该命令管道的末尾。

请注意,你希望过滤掉AUTHREC包含的定义PROFILE('SYSTEM,因为这些都需要控制访问模型队列,命令队列,等等。

不幸的是,MQ 开发团队不像 SupportPac 作者那样与 MQ 社区密切合作,但这是有充分理由的。请注意,SupportPac 并不总是保持最新,并且它们的维护和错误修复是在可用的基础上执行的。虽然总的来说 SupportPac 作者非常擅长跟上他们没有强制执行的最后期限。

将此与 MQ 开发实验室创建新组件(如dmpmqcfg. 他们对抢先体验计划 (EAP) 的使用使需求正式化并对其进行跟踪,以确保组件与产品的其余部分一起按时发布、翻译成多种语言、记录在手册中等。问题并非如此开发实验室并没有像让公司加入 EAP 那样倾听我们的要求,然后在那里投入时间进行测试并及时提供反馈。

但是,正如 Jon 所说,可以通过请求增强 (RFE)流程提交对已发布组件的需求。乔恩的回答遗漏的是,为了被考虑和优先考虑,RFE 必须要么有一个真正引人注目的商业案例,要么获得一些投票和/或评论。有一些策略可以帮助通过 RFE:

  • 不要在 RFE 之间分配投票。在提交之前,搜索(真正浏览是因为 RFE 搜索功能很糟糕)寻找类似的。如果您发现一个接近的,请对其发表评论以澄清您的要求,而不是提交新的要求,然后投票。
  • 在 Listserv 和/或 MQSeries.net 上与社区讨论您的提案。如果有人有您错过的 RFE,您会在此处听到相关消息。您还将了解您可能会为 RFE 获得多少支持,或者您想要的东西是否是反模式(在您这样做之前看起​​来很棒,此时它会以意想不到的方式变得危险 - 例如使用 DNSCHLAUTH记录中的名称)。
  • 如果您确实提交了 RFE,请向 Listserv 和/或 MQSeries.net 发布说明,让社区知道您已提交并请他们发表评论并投票。
  • 如果您找到现有 RFE 或提交自己的 RFE,请更新您的问题或添加评论以跟踪进度。Stack Overflow 应该随着时间的推移而发展,如果您面临的问题得到解决,那么在这里捕获它会帮助其他人。如果我们在您的跟进中找到链接,那么我们中的一些人会投票支持它。

希望有帮助。我的要求dmpmqcfg总是它复制 的功能saveqmgr,再加上一些东西。我会投票给这个。