JAVA 连接 IBMMQ 错误收集

错误代码2058:

检查远程队列管理器或者远程队列名称是否拼写错误

错误代码2195

情况1:发送方与接收方的队列管理器编码不一致,

 

//查看编码方式

dis qmgr

 

//设置编码方式

RUNMQSC 队列管理器名称

ALTER QMGR CCSID (1208)

END

 

错误代码 2035

当前用户没有权限连接到MQ,需要再通道认证处加上用户信息/建立客户机连接通道

2035 原因2:权限不够

ALTER QMGR CHLAUTH(DISABLED) //关闭通道认证(生产环境下不允许关闭通道认证)

 

或者

ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('指定的用户标识')

//给指定用户赋予通道认证权限

 

 

原因3:在V8.0版本以上,与服务器的连接默认需要密码去认证,可以通过配置队列管理器的连接认证选项来解决:

通过以下命令行指令解决,将连接认证选项中的SYSTEM.DEFAULT.AUTHINFO.IDPWOS的相关属性配置为OPTIONAL

ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL);

 

或者直接将连接认证选项置为空,将其完全关闭,指令如下:

 

ALTER QMGR CONNAUTH(' ') 注:单引号内有空格

 

在执行完上述两条命令中的任一条后,都需要刷新连接认证的缓存,指令如下:

 

REFRESH SECURITY TYPE(CONNAUTH)

 

备注 :这里的mqm是mqm用户组内的用户名,根据实际情况切换

 

如果上述操作还是不行的话执行下面这句:

ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('mqm'),

ALTER CHL('server_conn_chl') CHLTYPE(SVRCONN) MCAUSER('mqm')

 

 

参考地址:http://blog.51cto.com/linux10000/1769190

 

2538:不能连接到MQ

解决方案:通过PING命令和telnet命令检测网络是否通畅,如果能够ping通,却TELNET不能连接,则可能是MQ队列管理器未启动或其中的监听器没有启动,如果Ping不通则是网络不通,需要检查是否同一网段、防火墙是否拦截等

 

 

2540:通道定义有错误

1.进入用户交互界面:runmqsc QMEMBFE(QMEMBFE为队列管理器名称)

2.创建相应的服务器连接通道:DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE

2035:授权相关错误:解决方式如下:

进入用户交互界面:(同上):

ALTER CHANNEL(DC.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')

 

 

 

 

2087 :未知远程管理器错误

可能原因:1.目标管理器与本地管理器重名

2.如果是发送的话,那么可能是远程队列没有绑定传输队列

 

你可能感兴趣的:(中间件,ibmmq)