当我尝试从Java连接到MQ 7.5时,我收到以下异常。
Please check if the supplied username and password are correct on the QueueManager to which you are connecting. at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:521) at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:221) at com.ibm.msg.client.wmq.internal.WMQConnection.(WMQConnection.java:425) at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:6902) at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6277) at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:285) at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6233) at com.ibm.mq.jms.MQConnectionFactory.createConnection(MQConnectionFactory.java:6262) . . Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED'). at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:209) ... 9 more
我找到了这个解决方案:
http://www-01.ibm.com/support/docview.wss?uid=swg21577137
但是通过以下方式通过rumqsc改变队列管理器的授权:
ALTER QMGR CHLAUTH(DISABLED)
不起作用。即使在重新启动队列管理器和侦听器后,我仍然会收到异常。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以使用MQS_REPORT_NOAUTH或MQSAUTHERRORS设置获取有关授权失败以及访问失败的详细信息。
答案 1 :(得分:0)
所以你遇到了安全问题,你首先想到的是关闭安全性!!!!!!! OMG。
首先,重新开启安全措施:
ALTER QMGR CHLAUTH(ENABLED)
如果您使用'mqm'或空白的UserID - 糟糕,非常糟糕!
接下来,让您的应用程序使用运行队列管理器的操作系统已知的UserID和Password连接到队列管理器。
然后,添加CHLAUTH规则以允许您的UserID连接(通过runmqsc):
SET CHLAUTH('ABC.SVRCONN') TYPE(USERMAP) CLNTUSER('stepasite') MCAUSER('stepasite')
最后,使用setmqaut为UserID应用适当的权限,但是为组而不是UserID执行此操作。发出MQSC命令'刷新安全性',以便队列管理器获取更改。 即。
setmqaut -m {QM_NAME} -t qmgr -g {GROUP} +connect +inq +dsp
setmqaut -m {QM_NAME} -n MY.Q.** -t queue -g {GROUP} +put +get +inq +dsp
如果您花时间阅读MQ文档,那么设置MQ权限非常简单。以下是setmqaut中的MQ Knowledge Center说明。