Ibm mq 定义WebSphere MQ管理订阅

Ibm mq 定义WebSphere MQ管理订阅,ibm-mq,Ibm Mq,我们正在使用IBM的WebSphere MQ,通过脚本创建管理订阅时遇到问题。其中一个参数需要一个现有的模型队列,但由于某种原因,我们的环境中缺少它。也许这是一个问题,但是想知道是否有一种方法可以绕过模型队列并创建订阅 我正在查看的链接是包含以下内容的消息和代码手册部分。 请向下滚动查看AMQ8464。我想我们错过了插入3的Insert\u,但希望有办法避免。错误全文如下: 如果输入的命令是“更改”或“显示”,则订阅 指定的不存在。如果输入的命令是Copy, 源订阅不存在。如果输入的命令是 创建

我们正在使用IBM的WebSphere MQ,通过脚本创建管理订阅时遇到问题。其中一个参数需要一个现有的模型队列,但由于某种原因,我们的环境中缺少它。也许这是一个问题,但是想知道是否有一种方法可以绕过模型队列并创建订阅

我正在查看的链接是包含以下内容的消息和代码手册部分。 请向下滚动查看AMQ8464。我想我们错过了插入3的
Insert\u
,但希望有办法避免。错误全文如下:

如果输入的命令是“更改”或“显示”,则订阅 指定的不存在。如果输入的命令是Copy, 源订阅不存在。如果输入的命令是 创建时,系统默认MQ订阅不存在


感谢您的建议。

在尝试复制或删除订阅时,如果未找到预期的现有订阅,则可能会引发此错误。由于您正在尝试定义订阅,因此我们可以假设错误手册中描述的最后一种情况是我们想要的-
SYSTEM.DEFAULT.SUB
不存在。此订阅在创建QMgr时定义(假设WMQ的v7.0或更高版本)。有两种方法可以找回它

  • 手动定义订阅。要使其工作,只需指定订阅中的所有字段
  • 使用
    strmqm-c
    命令。这将重新定义任何已手动删除的默认系统对象,包括默认订阅
  • #1起作用的原因是WMQ将使用您在
    DEFINE
    命令中提供的任何参数,然后忽略任何参数,它将查看
    SYSTEM.DEFAULT.SUB
    对象以确定系统本地默认值。如果您提供了所有的值,那么它就不需要查看默认对象,只需定义您告诉它的内容。这意味着您可以定义自己的订阅,或者您可以通过指定所有参数来定义
    SYSTEM.DEFAULT.SUB
    。以下
    DEFINE
    语句重新创建
    SYSTEM.DEFAULT.SUB
    ,而无需使用
    -c
    选项停止并重新启动QMgr:

    DEFINE SUB(SYSTEM.DEFAULT.SUB) + 
           TOPICSTR('') +
           TOPICOBJ('') +
           DEST('') +
           DESTQMGR('') +
           PUBAPPID('') +
           SELECTOR('') +
           USERDATA('') +
           PUBACCT(0000000000000000000000000000000000000000000000000000000000000000) + 
           DESTCORL(000000000000000000000000000000000000000000000000) +
           DESTCLAS(PROVIDED) +
           EXPIRY(UNLIMITED) + 
           PSPROP(MSGPROP) + 
           PUBPRTY(ASPUB) +
           REQONLY(NO) + 
           SUBSCOPE(ALL) + 
           SUBLEVEL(1) + 
           VARUSER(ANY) +
           WSCHEMA(TOPIC) +
           SUBUSER('')
    
    我将此重新标记为,以便WMQ人员更容易找到。标记获取应用程序服务器管理员和开发人员。