繁体   English   中英

通过Java程序使用MQ客户端访问远程IBM MQ Server队列

[英]Access Remote IBM MQ Server Queue using MQ Client through a java program

我对IBM MQ比较陌生。

我的要求是通过IBM MQ Client连接到远程IBM MQ Server队列。 然后,使用IBM MQ Java API通过MQ客户端访问队列。

这是正确的方法吗?

我已经在本地计算机上设置了IBM MQ Server和IBM MQ Explorer,并创建了一个队列管理器Queue。 我还编写了一个Java程序,以使用IBM MQ API连接到MQ。

此Java程序具有以下参数:

String queueManagerName = "QUEUE.MANAGER.1";
String userID = "";
String password = "";
String queueName = "QUEUE1";
String hostName = "localhost";
String channel = "CHANNEL1";
int port = 1414;

在这里,一切似乎都正常。 我可以通过Java程序从MQ服务器队列发送消息/从MQ服务器队列接收消息。

现在,我已经在同一台机器上安装了IBM MQ Client,如何通过MQ Client使用java程序连接到同一服务器队列?

我的要求是:

  1. 在另一台机器上运行的MQ Server。
  2. 使用安装在本地计算机上的MQ客户端连接到服务器队列。
  3. Java程序应通过本地MQ客户端向服务器队列发送/接收消息。

我怎样才能做到这一点?

您将需要为应用程序指定连接参数,以连接到远程计算机上的队列管理器。 例如:

String queueManagerName = "<Remote queue manager name>";
String userID = "<valid user existing on remote machine>";
String password = "<password for user>";
String hostName = "<remote host name>";
String channel = "<Channel name on remote queue manager>";
int port = <port number where queue manager is listening>;

但是您将需要在远程队列管理器上配置身份验证和授权,以使应用程序连接。 如果未配置,则将收到MQRC 2035-NOT_AUTHORIZED错误。

String mqHost = null; // Hostname
String mqPort = null; // Port
String mqChannel = null; // Channel 
String mqQMgr = null;   // Queue Manager
MQQueueManager qMgr = null;
MQEnvironment.hostname = mqHost;
MQEnvironment.port = Integer.valueOf(mqPort).intValue();
MQEnvironment.channel = mqChannel;
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
MQEnvironment.userID = "USERID";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM