WebSphere MQ 调用失败,代码为“2”(“MQCC_FAILED”),原因为“2063”(“MQRC_SECURITY_ERROR”)

Div*_*k S 1 websphere spring-jms ibm-mq

我是 WAS 7 和 Webshpere MQ 6,用于 Java 中的 JMS 应用程序。我在连接到队列时遇到此错误。com.ibm.msg.client.jms.DetailedJMSSecurityException:JMSWMQ0018:无法使用连接模式“客户端”和主机名“172.21.136.72”连接到队列管理器“Test_QManager”。检查队列管理器是否已启动,如果在客户端模式下运行,请检查是否有侦听器正在运行。请参阅链接的异常以获取更多信息。

引起原因:com.ibm.mq.MQException:JMSCMQ0001:WebSphere MQ 调用失败,代码为“2”(“MQCC_FAILED”),原因为“2063”(“MQRC_SECURITY_ERROR”)。请任何帮助。

T.R*_*Rob 5

作为一般规则,队列管理器会提供任何安全错误的最详细信息。这样做的原因是管理员需要尽可能多的信息,但攻击者应该获得尽可能少的信息。

这为我们提供了针对此类错误的出色诊断工具。当您在客户端收到一个非常稀疏的“安全错误”且几乎没有任何解释时,请查看队列管理器的日志。如果他们与您的客户端同时记录了详细的错误,那么您就知道该请求已发送到 MQ 以及 MQ 拒绝该请求的原因。

但是,如果 QMgr 日志没有记录错误,那么您就知道将精力集中在客户端。

如果这是授权错误,您将返回一个2035. A2063与安全有关,但与授权无关。这会导致客户端无法找到或打开其密钥库,或者密钥库上的文件权限允许全局读取等问题。客户端 JSSE 提供程序可能与 MQ 不兼容。

建议的诊断方法是使用 MQ 附带的示例程序来执行验证测试。如果这些可以重现问题,则与配置或环境有关。如果它们有效,则问题可能出在代码、应用程序服务器配置或托管对象中。打开客户端跟踪应该会有很大帮助,只需记住之后将其禁用即可,