Ошибка при создании очереди с помощью API WebSphere MQ - PullRequest
2 голосов
/ 14 января 2011

Я пытаюсь создать очереди с помощью команды PCF в API WebSphere, как описано в $MQM_HOME/samp/pcf/samples/PCF_CreateQeue.java.Создание не удается, когда я добавляю описание

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.

Ответы [ 2 ]

2 голосов
/ 14 января 2011

Страница Команды в руководстве PCF гласит:

Перечислены обязательные параметры и дополнительные параметры.На платформах, отличных от z / OS, параметры должны указываться в следующем порядке: :

  1. Все обязательные параметры в указанном порядке, за которыми следует
  2. Необязательнопараметры по мере необходимости, в любом порядке, если специально не указано в определении PCF.

В разделе Очередь изменения, копирования и создания перечислены обязательные параметры в следующем порядке.:

  1. MQCA_Q_NAME
  2. MQIA_Q_TYPE
  3. Необязательные параметры, включая QDesc

В этом же руководстве приведены необходимые параметры и их порядок для всех PCFкоманды, поэтому не нужно играть в прятки, пробуя пармы и заказы в будущем.

1 голос
/ 18 января 2011

Оказывается, addParameter на PCFMessage должен в определенной последовательности (наткнулся на него). Если я изменить параметры добавления, если работает. Это не только для создания очередей, но и для каналов.

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, и если это так, я с нетерпением жду какой-нибудь прятки.

...