Лучший способ создать соединение IBM MQ на том же сервере - PullRequest
0 голосов
/ 27 марта 2019

Подключение к IBM MQ с использованием Java, но и приложение, и MQ находятся на одном сервере.В этом случае мне нужно указать хост, порт, канал и т. Д., Или это только Queue Manager в порядке, или любой другой подход.

Я знаю, как подключиться, используя имя хоста, порт, канал и имя очереди.

Как лучше всего подключаться, когда приложение и администратор очередей находятся на одном сервере.

Ответы [ 2 ]

3 голосов
/ 28 марта 2019

Если приложение и администратор очередей работают на одном и том же компьютере, вам не нужно подключаться с помощью клиентского подключения (то есть с использованием имени хоста, порта и канала), но вместо этого вы можете использовать так называемое соединение с локальными привязками и просто укажите имя администратора очередей.

Для клиентского соединения соединение с администратором очередей выполняется через сокет TCP / IP.

Для соединения с локальными привязками соединение с администратором очередей выполняется с использованием общей памяти.

В зависимости от того, какой интерфейс MQ Java вы используете, взгляните на следующие примеры.

Классы IBM MQ для Java

Посмотрите на пример MQSample.java, который создает очень простое соединение с локальными привязками.

IBM MQ Class для JMS

Посмотрите на пример JmsBrowser в качестве примера. Он может использовать клиентские или локальные привязки. Посмотрите на логическое значение clientTransport и, соответственно, следуйте коду.

1 голос
/ 28 марта 2019

Если вас не волнует JMS, вы можете сделать это следующим образом (без обработки ошибок):

  MQQueueManager qMgr = new MQQueueManager("");
  int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF;
  MQQueue queue = qMgr.accessQueue("Q1", openOptions);

  MQMessage mqMsg = new MQMessage();
  queue.get(mqMsg);
  System.err.println("received: " + mqMsg.readLine() );

  queue.close();
  qMgr.disconnect(); 
...