2100 (MQRC_OBJECT_ALREADY EXISTS) действительно проблема с созданием динамической c очереди.
Объяснение
An Был выполнен вызов MQOPEN для создания динамической очереди c, но очередь с тем же именем, что и у динамической c очереди, уже существует.
Код завершения
MQCC_FAILED
Ответ программиста
При полном предоставлении динамического имени очереди c убедитесь, что оно соблюдает правила именования для динамических c очередей; если это так, либо укажите другое имя, либо удалите существующую очередь, если она больше не требуется. Или же разрешите менеджеру очередей сгенерировать имя.
Если администратор очередей генерирует имя (частично или полностью), повторите вызов MQOPEN.
В разделе В этом случае PCFMessageAgent
создаст сообщение формата PCF, используя данные, которые вы указали в PCFMessage
, и откроет очередь модели для создания временной очереди для получения ответа от командного сервера. Эти временные очереди именуются администратором очередей путем создания уникальной части с использованием метки времени, в результате чего имя выглядит как AMQ.5E47207E2227AA02
. Если у вас есть много параллельных приложений, делающих это, возможно, вы могли бы в итоге получить cla sh имен, а второй запрос одновременно мог бы привести к конфликту имен.
Если у вас есть способ сделать имя временной очереди более уникальным, если такой параллелизм будет проблемой в вашей системе, вы можете установить префикс, используемый для имени временной очереди, используя метод setReplyQueuePrefix . Например, вы можете использовать идентификатор пользователя, под которым выполняется каждое приложение, если он уникален.
publi c void setReplyQueuePrefix (java .lang.String prefixP)
Устанавливает строку, используемую в качестве первой части имени очереди ответа агента. Очередь ответов, используемая PCFAgent, является временной динамической очередью c. По умолчанию префикс очереди ответов, используемый PCFAgent, представляет собой пустую строку (""). Когда это используется, имя очереди ответов полностью генерируется администратором очередей. Если метод вызывается с указанным префиксом, то PCFAgent передает этот префикс администратору очередей всякий раз, когда ему необходимо создать временную очередь. Затем администратор очередей сгенерирует оставшуюся часть временного имени очереди. Это означает, что администратор очередей генерирует уникальное имя, но PCFAgent все еще имеет некоторый контроль. Указанный префикс должен содержать не более 33 символов. Если префикс содержит 33 символа или более, то этот метод усекает префикс до 32 символов в длину. Если в конце префикса нет символа звездочки (*), то в конце добавляется звездочка.