如何在JMeter中创建MQQueueManager对象及2035错误排查咨询
MQ 2035错误核心原因
你遇到的MQJE001: Completion Code '2', Reason '2035'是IBM MQ标准的权限拒绝错误,和构造函数是否缺少必填参数无关,本质是你提交的连接请求没有通过队列管理器的认证授权校验。
排查方向
- 第一步验证基础配置正确性:确认你填写的
my_host、my_port、my_channel和目标队列管理器的监听配置完全一致,my_user_id、my_password是队列管理器服务端认可的有效账号密码。 - 第二步检查通道权限规则:如果使用的是SVRCONN类型通道,需要确认服务端的
CHLAUTH规则没有拦截你运行JMeter的主机IP、没有禁止你使用的用户名登录,IBM MQ默认会禁止mqm、管理员类账号远程连接,需要手动配置规则放行。 - 第三步检查队列管理器认证配置:确认队列管理器的
CONNAUTH策略是否要求额外的认证字段,部分定制化配置的队列管理器会要求传入应用名、客户端标识等信息才能通过校验。
可选补充参数
你当前的MQQueueManager构造函数参数已经满足必填要求,不需要额外加参数也可以正常运行。如果需要更详细的错误日志定位问题,可以在mqProps中新增调试参数:
// 开启客户端详细报错 mqProps.put(MQConstants.MQ_REPORT_ERROR_PROPERTY, Boolean.TRUE); // 配置连接超时时间,避免无意义等待 mqProps.put(MQConstants.TIMEOUT_PROPERTY, 30000);
JMeter环境特殊注意项
如果你是在分布式JMeter环境下运行,需要确认所有压力机的IP都已经被加入MQ服务端的白名单,同时确认com.ibm.mq.allclient依赖包已经放到了JMeter的lib目录下,而不是仅放在脚本同级目录,避免类加载异常导致的认证信息传递错误。
内容的提问来源于stack exchange,提问作者jordan
相关产品推荐
相关产品推荐

