只能连接到本地MQ而不能连接到远程MQ

时间:2013-05-07 07:09:27

标签: ibm-mq

我的问题是我有两个服务器,一个运行MQ服务器,另一个运行服务,它们将从前者获得MQ消息。但是听起来很容易,我不能让后者连接到第一台服务器上的队列管理器。我尝试了以下行动:

  1. 从第二台服务器ping第一台服务器:它运行正常
  2. 使用用于连接第一台服务器(1416)上的MQ Manager的特定端口,从第二台服务器Telnet第一台服务器:它也可以找到
  3. 现在它出现了奇怪的部分:我在第二台服务器上创建了一个队列管理器(在该机器上还运行了一个MQ服务器),在我要连接的第一台服务器上使用与MQ Manager相同的名称,那么我只能连接到这个队列,虽然在ChannelInfo中我指定完全是第一个服务器的IP地址,而不是第二个。
  4. 在第二台服务器上删除MQ Manager后,它只给出了错误2058:MQRC_Q_MGR_NAME_ERROR。我在第一台服务器上检查了MQ Mananer名称,这是正确的。
  5. 可以从其他服务器连接到第一台服务器的MQ Manager。
  6. 更多信息我怀疑它是我的问题的根源:第一台服务器运行Windows 32位,第二台服务器运行Windows 64位。此外,第二个是全新安装,所以我认为它可能有一些问题与某些权限。然而到目前为止,搜索并没有帮助我。

    如果有人能解决我的问题,我真的很感激。这使我的项目已经逾期一周了。

    提前致谢!

1 个答案:

答案 0 :(得分:0)

没有错误不是由32/64位Windows平台引起的。

在32位和64位Windows平台上,队列管理器作为32位进程运行。

所以这不是问题。

在第一台服务器上验证的明显事项:

  1. 您是否为队列管理器定义了侦听器以侦听端口1416?如果是,是否正在运行?

  2. 您是否在队列管理器上定义了服务器连接(SVRCONN)通道?

  3. 您的服务(在第二台服务器上运行)如何尝试连接到队列管理器?是绑定还是客户端模式?在绑定模式下,应用程序只能连接到在同一台计算机上运行的队列管理器。在客户端模式下,应用程序可以连接到在同一台计算机或不同计算机上运行的队列管理器。您的服务必须使用客户端模式连接才能连接到远程计算机。

  4. 要连接到远程队列管理器,应用程序必须指定主机名,端口和通道名称。