我在Unix系统中使用IBM Websphere MQ 7.5 。我在我的机器上安装了客户端,服务器在其他机器上运行。我正在观察一个场景,当我通过&m; mqm'运行我的 JMS应用程序时,我可以与服务器进行通信。用户,但在使用其他用户时面临下述错误。
但我可以运行' amqsputc'和' amqsgetc'命令并使用mqm以及其他用户与服务器通信。我已按照http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ins.doc/q009300_.htm?lang=en
提到的所有步骤进行操作 例外:
com.ibm.msg.client.jms.DetailedJMSSecurityException:JMSWMQ2013:为QueueManager提供的安全认证无效' TestManager'使用连接模式'客户端'和主机名' x.x.x.x(9923)'。
请检查所连接的QueueManager上提供的用户名和密码是否正确。
在com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:521)
在com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:221)
在com.ibm.msg.client.wmq.internal.WMQConnection。(WMQConnection.java:426)
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)
在com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:120)
at com.ibm.mq.jms.MQQueueConnectionFactory.createConnection(MQQueueConnectionFactory.java:203)
at performance.IBMMQTestProducer.start(IBMMQTestProducer.java:142)
at performance.IBMMQTestProducer.main(IBMMQTestProducer.java:177)
引起:com.ibm.mq.MQException:JMSCMQ0001:WebSphere MQ调用失败,包含compcode' 2' (' MQCC_FAILED')原因' 2035' (' MQRC_NOT_AUTHORIZED&#39)。 在com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:209) ... 9 mo re 引起:com.ibm.mq.jmqi.JmqiException:CC = 2; RC = 2035; AMQ9509:程序无法打开队列管理器对象。 [1 = 2035,5 = ???] 在com.ibm.mq.jmqi.internal.JmqiTools.getQueueManagerInfo(JmqiTools.java:783) 在com.ibm.mq.jmqi.remote.impl.RemoteSession.loadInfo(RemoteSession.java:1993) 在com.ibm.mq.jmqi.remote.impl.RemoteSession.getName(RemoteSession.java:2026) 在com.ibm.mq.jmqi.remote.api.RemoteHconn.getName(RemoteHconn.java:728) 在com.ibm.mq.ese.intercept.JmqiConnInterceptorImpl.validate(JmqiConnInterceptorImpl.java:321) 在com.ibm.mq.ese.intercept.JmqiConnInterceptorImpl.afterConnect(JmqiConnInterceptorImpl.java:226) 在com.ibm.mq.ese.intercept.JmqiConnInterceptorImpl.afterJmqiConnect(JmqiConnInterceptorImpl.java:133) 在com.ibm.mq.ese.jmqi.InterceptedJmqiImpl.jmqiConnect(InterceptedJmqiImpl.java:315) 在com.ibm.mq.ese.jmqi.ESEJMQI.jmqiConnect(ESEJMQI.java:337)
谢谢,
Anuj
答案 0 :(得分:0)
鉴于您已告诉我们您已成功连接并运行amqsgetc
和amqsputc
客户端样本,并使用与您尝试用于JMS程序的相同服务器连接通道,这表明这不是连接时间问题,换句话说,队列管理器的MQCONN
已经成功,后面的事情就失败了。我们知道您可以MQPUT
和MQGET
(因为这是上述示例所做的)。
JMS执行的那些简单示例不做的事情是队列管理器的MQINQ
。您的异常的以下部分让我想知道您是否正在绊倒: -
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2035;
AMQ9509: Program cannot open queue manager object. [1=2035,5=???] at
com.ibm.mq.jmqi.internal.JmqiTools.getQueueManagerInfo(JmqiTools.java:783) at
要完全确定,您必须检查队列管理器AMQERR01.LOG
以查看其中的报告内容。如果缺少授权,那么它会在那里告诉你。
答案 1 :(得分:0)
当我像自己一样跑步并且通过“mqm”时,我能够运行它。何时开始连接。 connection = cf.createConnection(" mqm"," pswd");
我在经理的日志中没有得到任何东西。以下是日志。
10/30/2015 06:50:54 AM - 流程(31064.1)用户(mqm)程序(strmqm) 主机(x.x.x.x)安装(安装1) VRMF(7.5.0.2) AMQ7125:此版本的WebSphere副本在试用期内还剩83天 MQ。
说明: 此WebSphere MQ副本仅在有限时间内获得许可。 行动: 无。