在同一台服务器上创建 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();
正在使用 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();