У меня есть код клиента MQ, который может просматривать очередь псевдонимов, чтобы получить базовое имя объекта Alias Queue (то есть имя локальной очереди, на которую указывает очередь псевдонимов). Однако код работает только тогда, когда клиент MQ подключается к MQ Manager, работающему на том же хосте, что и клиентский код, но НЕ, когда клиентский код подключается к диспетчеру MQ на удаленном хосте.Используйте mq-клиент, чтобы получить имя очереди базового объекта Alias Queue
Client Код:
MQEnvironment.hostname = "192.168.1.3";
MQEnvironment.port = "1415";
MQEnvironment.channel = "ADMIN.SVRCONN";
MQQueueManager mqQueueManager = new MQQueueManager(null);
int openOptions = CMQC.MQOO_BROWSE;// + CMQC.MQOO_RESOLVE_LOCAL_Q;
MQQueue mqQueue = mqQueueManager.accessQueue("AN.ALIAS.QUEUE.NAME", openOptions);
String resolvedName = mqQueue.getResolvedQName();
// resolvedName is null when the MQ Manager is on a remote host
System.out.println("Resolved Queue Name: " + resolvedName);
Когда разрешенное имя очереди псевдонимов очереди пустое, журналы ошибок Музейного диспетчера показывает следующую одну записи:
AMQ9208: Error on receive from host devlaptop (192.168.1.5).
EXPLANATION:
An error occurred receiving data from devlaptop (192.168.1.5) over TCP/IP.
This may be due to a communications failure.
ACTION:
The return code from the TCP/IP (recv) call was 10054 (X'2746'). Record these
values and tell the systems administrator.
Если это возможно для клиента кода, чтобы получить имя базового объекта удаленного псевдонима MQ Manager? И если да, то как? Я где-то пропускаю удаленные разрешения? Или мой код клиента openOptions
не так ли?
ПРИМЕЧАНИЕ. Очередь псевдонимов или любые другие очереди в менеджерах очереди не кластеризованы.
@T, как вы объяснили, закрытие клиента, не закрывая соединение, должно быть связано с тем, что я убиваю приложение и поэтому не предоставляю приложению возможность запускать 'mqQueue.close();' и 'mqManager.close (); '. Что касается самой очереди Alias, я могу подтвердить, что она НЕ сгруппирована. –
В этом случае обновите вопрос с помощью значений, используемых для заполнения QMgr и имени очереди для 'OPEN'. –
@JoshMc, целью очереди псевдонимов является локальная очередь, которая также не кластеризована. Внутри этих менеджеров очереди нет кластеризованных очередей. –