当前位置: 首页 > 知识库问答 >
问题:

IBM MQ问题:jmscmq0001 websphere MQ调用失败,compcode为“2”('mqcc_failed')原因为“2035”

郭永安
2023-03-14

在spring JMS项目中,我尝试连接到放置在spring客户机所在位置的IBM MQ队列。当应用程序试图连接到MQ服务器时,我得到以下错误:

INFO - Could not refresh JMS Connection for destination 'TI.UNIT1.TRAN.IN' - retrying in 5000 ms. Cause: JMSWMQ2013: L'authentification de la sécurité fournie pour le gestionnaire de files d'attente 'QM_TEST' à l'aide du mode de connexion 'Client' et du nom d'hôte 'localhost' n'était pas valide.; nested exception is com.ibm.mq.MQException: JMSCMQ0001: L'appel WebSphere MQ a échoué avec le code achèvement '2' ('MQCC_FAILED') ; motif '2035' ('MQRC_NOT_AUTHORIZED').
com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: L'authentification de la sécurité fournie pour le gestionnaire de files d'attente 'QM_TEST' à l'aide du mode de connexion 'Client' et du nom d'hôte 'localhost' n'était pas valide. Vérifiez si le nom dutilisateur et le mot de passe fournis sont corrects dans le gestionnaire de files dattente auquel vous vous connectez
    at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:531)
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:219)
    at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:410)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7855)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:7441)
    at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:276)
    at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6055)
    at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:115)
    at org.springframework.jms.listener.DefaultMessageListenerContainer102.createConnection(DefaultMessageListenerContainer102.java:71)
    at org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:378)
    at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:363)
    at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:785)
    at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:767)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:898)
    at java.lang.Thread.run(Thread.java:744)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: L'appel WebSphere MQ a échoué avec le code achèvement '2' ('MQCC_FAILED') ; motif '2035' ('MQRC_NOT_AUTHORIZED').
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:206)

IBM MQ Server(Windows 64bits)版本=8.0.0.4

Spring JMS应用程序版本=7.0

日志文件(amqerr01.Log)内容:

----- cmqxrsrv.c : 2321 -------------------------------------------------------
17/02/2017 01:40:20 - Process(6472.10) User(John) Program(amqzlaa0.exe)
                      Host(MyMachine) Installation(Installation1)
                      VRMF(8.0.0.4) QMgr(QM_TEST)

AMQ5540: L'application 'WebSphere MQ Client for Java' n'a pas fourni d'ID
utilisateur et de mot de passe

EXPLICATION :
Le gestionnaire de files d'attente est configuré pour nécessiter un ID
utilisateur et un mot de passe, mais ni l'un ni l'autre n'a été fourni.
ACTION :
Assurez-vous que l'application fournit un ID utilisateur et un mot de passe
valides ou spécifiez FACULTATIF pour la configuration du gestionnaire de files
d'attente afin de permettre aux applications n'ayant pas fourni d'ID
utilisateur et de mot de passe de se connecter. 
----- amqzfuca.c : 4287 -------------------------------------------------------
17/02/2017 01:40:20 - Process(6472.10) User(John) Program(amqzlaa0.exe)
                      Host(MyMachine) Installation(Installation1)
                      VRMF(8.0.0.4) QMgr(QM_TEST)

AMQ5541: L'échec de la vérification de l'authentification a été provoqué par la
configuration CONNAUTH CHCKCLNT(REQDADM) du gestionnaire de files d'attente.

EXPLICATION :
L'ID utilisateur 'john' et son mot de passe ont été vérifiés car l'ID
utilisateur est privilégié et la configuration de l'autorité de connexion du
gestionnaire de files d'attente (CONNAUTH) fait référence à un objet
d'informations d'authentification (AUTHINFO) nommé
'SYSTEM.DEFAULT.AUTHINFO.IDPWOS' avec CHCKCLNT(REQDADM). 

Ce message accompagne une erreur précédente pour expliquer la raison de la
vérification de l'ID utilisateur et du mot de passe.
ACTION :
Pour plus d'informations, reportez-vous à l'erreur précédente. 

Vérifiez que l'application client spécifie un mot de passe et que le mot de
passe est correct pour l'ID utilisateur. La configuration de l'authentification
de la connexion du gestionnaire de files d'attente détermine le référentiel
d'ID utilisateur. Par exemple, la base de données utilisateur du système
d'exploitation local ou un serveur LDAP. 

Pour éviter la vérification de l'authentification, vous pouvez utiliser un ID
utilisateur non privilégié ou changer la configuration d'authentification du
gestionnaire de files d'attente. Vous pouvez modifier l'attribut CHCKCLNT dans
l'enregistrement CHLAUTH, mais vous devez éviter d'autoriser l'accès distant
non authentifié. 
-------------------------------------------------------------------------------
17/02/2017 01:40:21 - Process(11528.7) User(John) Program(amqrmppa.exe)
                      Host(MyMachine) Installation(Installation1)
                      VRMF(8.0.0.4) QMgr(QM_TEST)

AMQ9557: Echec de l'initialisation de l'ID utilisateur du gestionnaire de files
d'attente pour 'John'.

EXPLICATION :
L'appel d'initialisation de l'ID utilisateur 'John' a échoué avec le code
achèvement 2 et le code anomalie 2035.
ACTION :
Corrigez l'erreur et relancez l'opération. 
----- cmqxrsrv.c : 2321 -------------------------------------------------------
17/02/2017 01:40:21 - Process(11528.7) User(John) Program(amqrmppa.exe)
                      Host(MyMachine) Installation(Installation1)
                      VRMF(8.0.0.4) QMgr(QM_TEST)

AMQ9206: Erreur lors de l'envoi de données à l'hôte MyMachine (127.0.0.1).

EXPLICATION :
Une erreur s'est produite lors de l'envoi de données à 'MyMachine (127.0.0.1)'
via TCP/IP. Un incident de communications en est peut-être la cause.
ACTION :
Le code retour provenant de l'appel TCP/IP(send) était 10054 X('2746'). Notez
ces valeurs et informez-en votre administrateur système. 
----- amqccita.c : 3169 -------------------------------------------------------
17/02/2017 01:40:21 - Process(11528.7) User(John) Program(amqrmppa.exe)
                      Host(MyMachine) Installation(Installation1)
                      VRMF(8.0.0.4) QMgr(QM_TEST)

AMQ9999: Le canal 'SYSTEM.ADMIN.SVRCONN' vers l'hôte '127.0.0.1' s'est terminé
anormalement.

EXPLICATION :
Le programme du canl s'exécutant sous l'ID processus 11528(876) pour le canal
'SYSTEM.ADMIN.SVRCONN' a pris fin anormalement. Le canal est '127.0.0.1'. Dans
certains cas, son nom ne peut pas être déterminé et il est représenté par
'????'.
ACTION :
Examinez les messages d'erreur précédents du programme de canal dans les
journaux des erreurs afin de déterminer la cause de l'incident. Notez que ce
message peut être totalement exclus ou supprimé en réglant les attributs
"ExcludeMessage" ou "SuppressMessage" sous la strophe "QMErrorLog" dans le
fichier qm.ini. D'autres informations figurent dans le guide d'administration
du système. 
----- amqrmrsa.c : 930 --------------------------------------------------------

共有1个答案

尉迟景福
2023-03-14

在MQ V8.0中,IBM引入了Connauth,它默认指向authinfo对象system.default.authinfo.idpwos。默认情况下,此对象的chckclnt属性设置为reqdadmreqdadm意味着任何连接到具有MQ管理权限的svrconn通道的用户都必须提供有效的密码。例如,这将是mqm组中的用户。

下面是您在amqerr01.log中收到的错误的英文格式:

AMQ5541: The failed authentication check was caused by the queue manager
CONNAUTH CHCKCLNT(REQDADM) configuration.
EXPLANATION: The user ID 'john' and its password were checked because the
user ID is privileged and the queue manager connection authority (CONNAUTH)
configuration refers to an authentication information (AUTHINFO) object
named 'SYSTEM.DEFAULT.AUTHINFO.IDPWOS' with CHCKCLNT(REQDADM). This message
accompanies a previous error to clarify the reason for the user ID and
password check.

使用spring配置,您应该能够将用户名和密码传递给MQ进行身份验证。默认情况下,system.default.authinfo.idpwos对象将被设置为根据操作系统检查密码。

MQ V7.0 JMS jar文件可以发送用户名和密码,但每个限制为12个字符,密码也可以通过客户端和队列管理器之间的网络发送。MQ V8.0和更高版本可以发送超过12个字符的用户名和密码,如果关闭MQ兼容模式,还可以利用密码保护,在通过网络发送时使用3DES加密密码。还请注意,自2015年9月30日以来,MQ V7.0就不再支持IBM了。

@MoragHughson写了一篇很好的IBM developerWorks MQdev博客,标题是“在不关闭MQ安全性的情况下继续运行”,解释了如何启用这种安全性,这将是一个很好的起点。我建议,如果您有关于CONNAUTH、OAM或Spring配置的任何进一步的具体问题要发送用户名和密码,您可以发布额外的具体问题,并用[ibm-mq]以及任何其他合适的标记(如[Spring]等)标记它们。

 类似资料: