MQ异常:Can not load MQ libraries from Installation Path

昨天在AIX上成功安装WebSphere MQ7和BROKER8,用mqsicreatebroker 命令准备创建代理时,报以下异常:


$ mqsicreatebroker  BROKER  -q  BROKERQM  -i  wbiadmin  -a  wbiadmin
BIP6123E: Can not load MQ libraries from Installation Path (''  0509-022 Cannot load module /usr/mqm/lib64/libmqm_r.a(libmqm_r.o).
        0509-150   Dependent module /usr/lib/libmqz_r.a(libmqz_r.o) could not be loaded.
        0509-103   The module has an invalid magic number.
        0509-022 Cannot load module /usr/mqm/lib64/libmqm_r.a(libmqm_r.o).
        0509-150   Dependent module /usr/mqm/lib64/libmqm_r.a(libmqm_r.o) could not be loaded.'') due to error ('{1}'). Removing the MQ symbolic links within /usr/lib via the MQ command dltmqlnk may resolve the problem. 
Can not load MQ libraries from Installation Path (''    0509-022 Cannot load module /usr/mqm/lib64/libmqm_r.a(libmqm_r.o).

        0509-150   Dependent module /usr/lib/libmqz_r.a(libmqz_r.o) could not be loaded.
        0509-103   The module has an invalid magic number.
        0509-022 Cannot load module /usr/mqm/lib64/libmqm_r.a(libmqm_r.o).
        0509-150   Dependent module /usr/mqm/lib64/libmqm_r.a(libmqm_r.o) could not be loaded.'') due to error ('{1}'). 
Removing the MQ symbolic links within /usr/lib via the MQ command dltmqlnk may resolve the problem. 

BIP8081E: An error occurred while processing the command. 
An error occurred while the command was running; the command has cleaned up and ended. 
Use messages prior to this one to determine the cause of the error.  
 Check for some common problems:  
 Does the user id have the correct authorities (for example a member of the mqbrkrs group)?  
 Is any operating system limit set too low to allow the command to run?  
 Is the environment correctly set up?  
 Correct the problem and retry the command, otherwise, contact your IBM support center. 



解决方法:
#cd /usr/mqm/bin
#dltmqlnk
执行此命令会看到类似下面信息以删除链接:
deleting /usr/lib/libimqb23ia_r.a
deleting /usr/lib/libmqmcs.a
deleting /usr/lib/libmqmzse.a
deleting /usr/lib/libmqmcs_r.a
deleting /usr/lib/libimqb23ia.a
deleting /usr/lib/libmqjx_r.so
deleting /usr/lib/libmqccics_r.a
deleting /usr/lib/libmqiz_r.a
deleting /usr/lib/libimqc23ia_r.a
deleting /usr/lib/libmqiz.a
deleting /usr/lib/libmqicb_r.a
deleting /usr/lib/libmqic.a
deleting /usr/lib/libimqc23ia.a
deleting /usr/lib/libmqicb.a
deleting /usr/lib/libmqic_r.a
deleting /usr/lib/amqczsc
deleting /usr/lib/amqczscg
deleting /usr/lib/libmqmxa_r.a
deleting /usr/lib/libmqmcb_r.a
deleting /usr/lib/libimqs23ia_r.a
deleting /usr/lib/libmqmcb.a
deleting /usr/lib/libmqmzf_r.a
deleting /usr/lib/libimqs23ia.a
deleting /usr/lib/libmqmxa.a
deleting /usr/lib/libmqmax.a
deleting /usr/lib/libmqml_r.a
deleting /usr/lib/libmqz_r.a
deleting /usr/lib/libmqmr_r.a
deleting /usr/lib/libmqmax_r.a
deleting /usr/lib/libmqm_r.a
deleting /usr/lib/libmqmcics_r.a
deleting /usr/lib/libmqmr.a
deleting /usr/lib/libmqm.a
deleting /usr/lib/libmqmzf.a
deleting /usr/lib/libmqz.a
deleting /usr/lib/libmqjxs_r.so
deleting /usr/lib/amqzscg
deleting /usr/lib/amqzfu
deleting /usr/lib/amqzsc
deleting /usr/lib/libmqcxa_r.a
deleting /usr/lib/libmqcxa.a


删除后,问题解决! 若问题还没解决可参考以下内容
以下内容为问题解决参考博客:

------------------------------------------------------------------------------------------------------------------
M Q V6.0开始的重要新特征之一是在UNIX平台添加了64位的库。dspmqver命令执行时指向64位的MQ库文件(如下所示)
#dump -H -X64 dspmqver
dspmqver:


***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x0000001d 0x00000025 0x00000074

#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x00000004 0x00000540 0x00000190 0x000005b4 ***Import File Strings***
INDEX PATH BASE MEMBER
0 /usr/mqm/lib64:/usr/lib/threads:/usr/lib:/lib
1 libc_r.a shr_64.o
2 libpthreads.a shr_xpg5_64.o
3 libmqmcs_r.a shr.o
但MQ V6.0在AIX平台安装时会自动在/usr/lib库下创建到MQ所带的32位库的链接;如果“/usr/lib”路径在操作系统的LIBPATH环境变量中指定,执行dspmqver会首先找到/usr/lib下的32位MQ库链接,从而报错。


解决办法如下:

方法1:
在LIBPATH路径中直接将MQ的64位库路径" /usr/mqm/lib64"加上:

方法2:
MQ提供了一个可执行程序dltmqlnk,会将MQV6.0安装时创建的32位库到/usr/lib目录的链接删除掉,这样,执行dspmqver会直接去找MQ的64位库。
#cd /usr/mqm/bin
#dltmqlnk

执行此命令会看到类似下面信息以删除链接:
deleteing /usr/lib/libimqb23ia_r.a
deleteing /usr/lib/libmqmcs.a
deleteing /usr/lib/libmqmzse.a
.... 

你可能感兴趣的:(MQ异常:Can not load MQ libraries from Installation Path)