CCSID不匹配.
AIX上面是英文819,而我的两台WIN的机器都装有MQ server,但都是中文1381. 之前我做过的实验有:两台WIN机器之间互联,只能单向但至少有一边可以连通(后来这个问题我发现是WIN的防火墙开启,阻挡了1414端口). 而WIN和AIX之间从来都不能连通.
这中间还有一个干扰因素: 就是这个AIX MQ 5.3版本不是用光盘安装出来的,lslpp看不到有MQ package的安装的. 而是我拷贝别人AIX 5.2上面的整个MQ目录,然后自己写了个script,重新建立一些link和NLS和环境信息搭起来的. 我开始怀疑是不是需要动态编译某些lib....后来在AIX上创建了2个Queue Manager,发现它们之间是可以互联的,并且基本的操作比如connect, put, get之类都没问题...所以基本上排除了MQ自身的问题.
有一点东西值得考虑: 就是从win手工telnet到AIX 1414端口以后是可以连通的,看MQ的log已经提示到有数据进来,只不过不是格式合格的数据而居之门外. 这说明如果用WIN连接AIX MQ SERVER, 传进来的数据包格式肯定有问题....所有问题都排除以后, 一对比WIN和AIX的两个MQM的区别,马上发现是CCSID不同...
但...把AIX MQ的CCSID修改为1381以后仍然不能连接,原因嘛,需要重新启动Queue Manager.
AIX上面是英文819,而我的两台WIN的机器都装有MQ server,但都是中文1381. 之前我做过的实验有:两台WIN机器之间互联,只能单向但至少有一边可以连通(后来这个问题我发现是WIN的防火墙开启,阻挡了1414端口). 而WIN和AIX之间从来都不能连通.
这中间还有一个干扰因素: 就是这个AIX MQ 5.3版本不是用光盘安装出来的,lslpp看不到有MQ package的安装的. 而是我拷贝别人AIX 5.2上面的整个MQ目录,然后自己写了个script,重新建立一些link和NLS和环境信息搭起来的. 我开始怀疑是不是需要动态编译某些lib....后来在AIX上创建了2个Queue Manager,发现它们之间是可以互联的,并且基本的操作比如connect, put, get之类都没问题...所以基本上排除了MQ自身的问题.
有一点东西值得考虑: 就是从win手工telnet到AIX 1414端口以后是可以连通的,看MQ的log已经提示到有数据进来,只不过不是格式合格的数据而居之门外. 这说明如果用WIN连接AIX MQ SERVER, 传进来的数据包格式肯定有问题....所有问题都排除以后, 一对比WIN和AIX的两个MQM的区别,马上发现是CCSID不同...
但...把AIX MQ的CCSID修改为1381以后仍然不能连接,原因嘛,需要重新启动Queue Manager.