Caused by: com.ibm.mqservices.MQInternalException: MQJE001: MQException 出现:完成代码是 2,原因为 2195 MQJE018: 协议错误 - 接收到意外的段类型
解决:
什么是ccsid:https://blog.csdn.net/dataiyangu/article/details/82849300
一:MQEnvironment.CCSID = 1381;(在JAVA连接代码时指定一下字符集)
二:修改字符集设置查看ccsid dis QMGR
一般Unix、Linux平台中MQ默认的字符集为819,而Windows平台为1381,所以你必须改变其字符集,使两边的字符集相同。改变方法:
1.通过DOS进入MQ的安装目录,进入/bin下。假如要更改的队列管理器为A
2.用指令“strmqm A”启动队列管理器A。
3.用指令“runmqsc A”启动A的MQSC。
4.运行指令“ALTER QMGR CCSID(819)”“end”则修改字符集为819。上面的是正常的操作,而我就按照上面的正常的操作怎么也不成功,百思不得其解,中午和同事吃饭,一语点破,原来我也想过这点,但没有实施:因为我的服务是建立在linux系统上的,java代码因为在测试阶段放在mac上,这样就导致,cssid不论怎么配置都不对,最终的决绝方案,除了上面说的,请确保在同一个操作系统下。
更正一下:后来发现在mac上的idea运行又没问题了,我也不知道原因,貌似只要同意ccsid即可,不需要一样的系统。
MQJE001: MQException 出现:完成代码是 2,原因为 2058 MQJE036: 队列管理器拒绝连接尝试
队列管理器的名称大小不对,或名称不对。
dspmq查看全部队列管理器
删除不必要的:
mqm@localhos ~>$endmqm Qm1 停止队列管理器
mqm@localhos ~>$dspmq 查看当前队列管理器的执行状态,当队列管理器状态变为Ended normally时才能删除
mqm@localhos ~>$dltmqm Qm1 删除队列管理器,它会级联删除该队列管理器中的队列和监听器等等。
Caused by: com.ibm.mqservices.MQInternalException: MQJE001: MQException 出现:完成代码是 2,原因为 2035
MQJE036: 队列管理器拒绝连接尝试解决:
display qmgr chlauth
1 : display qmgr chlauth
AMQ8408: Display Queue Manager details.
QMNAME(Q) CHLAUTH(ENABLED)
alter qmgr chlauth(disabled)
2 : alter qmgr chlauth(disabled)
AMQ8005: WebSphere MQ queue manager changed.此外还要注意客户端java代码中的对应于服务端的用户名密码是否正确。