在同一台服务器上创建 IBM MQ 连接的最佳方式

Best way to create an IBM MQ connection on same server

正在使用 java 连接到 IBM MQ,但应用程序和 MQ 位于同一台服务器上。在这种情况下,我是否需要指定主机、端口、通道等,或者只有队列管理器可以,或者任何更好的方法。

我知道如何使用主机、端口、通道和队列名称进行连接。

当应用程序和队列管理器驻留在同一台服务器上时,最佳连接方法是什么。

如果应用程序和队列管理器 运行 在同一台机器上,则不需要使用客户端连接(即使用主机、端口和通道名称)进行连接,而是可以使用客户端连接称为本地绑定连接,只需提供队列管理器名称。

对于客户端连接,到队列管理器的连接是通过 TCP/IP 套接字建立的。

对于本地绑定连接,与队列管理器的连接使用共享内存。

根据您使用的 MQ Java 接口,查看以下示例。

IBM MQ Classes for Java

查看示例 MQSample.java,它建立了一个非常简单的本地绑定连接。

用于 JMS 的 IBM MQ Class

以 JmsBrowser 示例为例。它可以使用客户端或本地绑定连接。查看布尔值 clientTransport 并相应地遵循代码。

如果你不关心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();