1

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

原因:com.ibm.mq.MQException:JMSCMQ0001:WebSphere MQ 调用失败,compcode '2' ('MQCC_FAILED') 原因 '2063' ('MQRC_SECURITY_ERROR')。请提供任何帮助。

4

1 回答 1

4

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

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

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

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

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

于 2015-06-12T14:16:57.967 回答