В MQ, если у вас есть экземпляр существующего администратора очередей, скажите queuemanager1, к которому у вашего приложения есть доступ. Вы можете отправить свое сообщение, создав очередь, которая указывает на очередь другого администратора очередей, queuemanager2, через queuemanager1. Это сделано потому, что у приложения, возможно, нет прямого доступа к queuemanager2, но у сервера MQ, на котором размещается queumanager1.
Код выглядит примерно так:
MQQueue destQueue = queuemanager1.accessQueue ("queFromAnotherMngr", CMQC.MQOO_OUTPUT | CMQC.MQOO_FAIL_IF_QUIESCING, "queuemanager2", null, null);
Я выполняю рефакторинг кода для использования адаптера IBM MQ JCA для JBoss AS 6. Поэтому я считаю, что мне нужно придерживаться ванильного API-интерфейса JMS (с помощью поиска InitialContext JNDI, источника и т. Д.), Чтобы мои соединения управлялись JBoss.
Однако я не могу понять, как в обычном JMS разрешить принимающему серверу MQ пересылать мое сообщение в другую очередь другого администратора очередей (queuemanager2).
Из того, что я исследовал до сих пор, есть объект, отправленный в MQ, называемый дескриптором сообщения очереди сообщений (MQMD), и у него есть поле с именами «ReplyToQMgr» и «ReplyToQ». Я думаю, что если я найду способ обновить эти поля с помощью JMS API с помощью adcater JCA, у меня будет свое решение. Какие-нибудь мысли? Идеи? Предложения? Решения? Спасибо!