【问题标题】:Error creating queue with WebSphere MQ API使用 WebSphere MQ API 创建队列时出错
【发布时间】:2011-01-27 13:16:49
【问题描述】:

我尝试使用$MQM_HOME/samp/pcf/samples/PCF_CreateQeue.java 中详述的 WebSphere API 中的 PCF 命令创建队列。添加描述时创建失败

command.addParameter(PCFConstants.MQCA_Q_DESC, "Created using MQMonitor");

我收到错误:com.ibm.mq.pcf.PCFException: MQJE001: Completion Code 2, Reason 3015 : MQRCCF_CFST_PARM_ID_ERROR 是否有另一种设置描述的方法,我使用的是 API 版本 6。

【问题讨论】:

    标签: java ibm-mq


    【解决方案1】:

    PCF 手册中的Commands page 指出:

    所需的参数和 列出了可选参数。上 z/OS® 以外的平台, 参数必须按顺序出现

    1. 所有必需参数,按所述顺序,后跟
    2. 可选参数根据需要,以任何顺序,除非特别 在 PCF 定义中注明。

    Change, Copy and Create Queue 部分按以下顺序列出了所需的参数:

    1. MQCA_Q_NAME
    2. MQIA_Q_TYPE
    3. 可选参数,包括 QDesc

    同一手册为所有 PCF 命令提供了所需的参数及其顺序,因此将来无需玩捉迷藏来尝试参数和命令。

    【讨论】:

      【解决方案2】:

      原来PCFMessage上的addParameter应该按一定的顺序(偶然发现)。如果我更改添加参数(如果有效)。这不仅用于创建队列,还用于通道。

      command.addParameter(PCFConstants.MQCA_Q_NAME, qname);
      command.addParameter(PCFConstants.MQIA_Q_TYPE, PCFConstants.MQQT_LOCAL);
      command.addParameter(PCFConstants.MQCA_Q_DESC, qdesc);
      command.addParameter(PCFConstants.MQIA_DEF_PERSISTENCE, PCFConstants.MQPER_PERSISTENT);
      

      上面的代码会正常执行。

      command.addParameter(PCFConstants.MQCA_Q_NAME, qname);
      command.addParameter(PCFConstants.MQCA_Q_DESC, qdesc);
      command.addParameter(PCFConstants.MQIA_Q_TYPE, PCFConstants.MQQT_LOCAL);
      command.addParameter(PCFConstants.MQIA_DEF_PERSISTENCE, PCFConstants.MQPER_PERSISTENT);
      

      移动描述后上述操作将失败。

      我没有在 Java 文档中看到它的记录,如果是这样,我期待一些捉迷藏。

      【讨论】:

      • 我放弃了最初的答案,并使用相应手册的链接更新了我的回复。你绊倒的东西都有记录,只是没有在 Java 手册中。
      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      相关资源
      最近更新 更多