Windows Server MQ客户端与Unix MQ服务器进行交互

时间:2019-01-30 15:07:03

标签: ibm-mq

对于新的Java MQ客户端需求,我正在做很多分析,这引起了一些疑问。当前,所有在Unix系统中的Queues Queue manager都在运行MQ服务器的地方创建。

为了运行Java MQ客户端,我们将在其他Unix Solaris系统上安装MQ客户端。这意味着,虽然我们有一台Windows服务器已经安装了MQ客户端,但是要在Unix系统上安装MQ客户端之前,需要清除我的澄清。

由于我是新MQ。

我们可以从Windows服务器运行Java MQ客户端来连接MQ服务器的unix系统(队列,队列管理器)

  1. 如果是,将Windows Server连接到UNIX Solaris会需要什么
  2. 该代码是使用MQ库编译的
  3. 是否会遇到任何错误。

如果您提供步骤或解决方案,那就太好了。

1 个答案:

答案 0 :(得分:3)

是的,你可以从任何一台机器运行Java MQ客户端连接到一个队列管理器的另一台机器上。 MQ客户端(Java,'C'或.NET版本)都支持任何平台到任何平台组合,并且都支持任何MQ版本到任何MQ版本。因此,例如,你可以有Windows上的V8客户机连接到UNIX上的V9队列管理器。同样,您可以在Windows上将V9客户端连接到Unix上的V8队列管理器,即任何版本的任何版本都可以向上或向下。

为了将客户端连接到队列管理器,您将需要客户端计算机上的客户端库,在您的情况下为Java客户端。

您还需要确保队列管理器正在运行TCP / IP侦听器,并且您知道端口号。

您将在队列管理器上需要一个名为SVRCONN的类型的通道定义,并知道其名称。例如

DEFINE CHANNEL(MQGEM.SVRCONN) CHLTYPE(SVRCONN) DESCR('Channel for my client application to connect to')

为了您的Java客户端连接到队列管理器就需要使用

  • 的通道名称
  • 运行队列管理器的计算机的主机名
  • TCP / IP侦听器的端口号

如果遇到任何错误,则可能与连接有关,因为您的应用程序是通过网络连接到队列管理器的。切记要注意你从MQ得到任何返回代码,他们将在4位数字的形式,例如2059。对于Java,您应确保掌握链接的异常。查看队列管理器的错误日志也可能很有用。

您还可能面临安全性错误,如果这是您第一次使用IBM MQ的。默认情况下,队列管理器处于锁定状态,因此远程应用程序无法简单地连接并造成损坏(例如,从其他应用程序中删除重要消息!)。这里有许多文章描述了这些错误及其解决方案。最好的建议是,从队列管理器获取MQRC代码(4位数字)和AMQERR01.LOG错误消息。有了这些信息,你应该能够描述和诊断您遇到任何错误的情况。