You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JBoss standalone.xml配置IBM MQ账号密码及解决2035授权错误

解决JBoss 7连接IBM MQ 9时的2035授权错误

遇到MQRC_NOT_AUTHORIZED(2035)错误,核心问题是IBM MQ拒绝了客户端的身份验证请求,下面是一步步的排查和解决方法:

1. 修正JBoss配置中的空格问题

先看你的资源适配器配置,注意到多个配置项的值前后带有空格,比如密码、主机名字段,这些空格会被当作配置值的一部分,尤其是密码字段,这绝对会导致身份验证失败。请把所有配置项的前后空格去掉,修正后配置如下:

<resource-adapters>
  <resource-adapter id="wmq.jmsra.rar">
    <archive>wmq.jmsra.rar</archive>
    <connection-definitions>
      <connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl"
                              jndi-name="java:/MQConnectionFactory"
                              use-java-context="true"
                              pool-name="MQConnectionFactory">
        <config-property name="hostName">localhost</config-property>
        <config-property name="password">sdadsadsadasd</config-property>
        <config-property name="queueManager">TEST</config-property>
        <config-property name="port">1415</config-property>
        <config-property name="channel">TEST.CHANNEL</config-property>
        <config-property name="transportType">CLIENT</config-property>
        <config-property name="username">testusermq</config-property>
      </connection-definition>
    </connection-definitions>
  </resource-adapter>
</resource-adapters>

2. 验证MQ端用户权限

即使你已经映射了用户组,也要确认testusermq用户拥有连接队列管理器TEST的必要权限:

  • 打开MQ Explorer,找到队列管理器TEST -> 权限 -> 用户和组
  • 找到testusermq(或其所属的Windows组),确保它被授予CONNECT和INQ权限
  • 或者用runmqsc命令行验证并添加权限:
    # 进入runmqsc环境
    runmqsc TEST
    # 查看用户当前权限
    DISPLAY AUTHREC PROFILE('TEST') PRINCIPAL('testusermq') AUTHORITY
    # 如果权限不足,添加必要权限
    SET AUTHREC PROFILE('TEST') PRINCIPAL('testusermq') AUTHADD(CONNECT,INQ)
    

3. 检查通道的认证规则

MQ通道TEST.CHANNEL的配置可能会覆盖客户端传入的用户名:

  • 用runmqsc查看通道配置:
    runmqsc TEST
    DISPLAY CHANNEL(TEST.CHANNEL) MCAUSER
    
    如果MCAUSER字段有值,MQ会用这个用户代替客户端传入的testusermq,需要确保这个MCA用户拥有相应权限,或者修改通道规则允许客户端传递自己的用户名:
    # 允许客户端用户连接到该通道
    SET CHLAUTH('TEST.CHANNEL') TYPE(USERMAP) CLNTUSER('testusermq') USERSRC(CHANNEL) ACTION(ADD)
    

4. 查看MQ错误日志定位细节

MQ的错误日志会给出授权失败的具体原因,比如哪个用户被拒绝、缺少什么权限:

  • 找到MQ安装目录下的错误日志,通常在C:\Program Files\IBM\MQ\errors\AMQERR01.LOG
  • 搜索2035关键词,查看对应的错误条目,里面会有更详细的信息,比如:

    AMQ9557E: Queue Manager User ID initialization failed for 'testusermq'.

    EXPLANATION: The call to initialize the User ID 'testusermq' failed with CompCode 2 and Reason 2035.

5. 用MQ工具独立测试连接

排除JBoss的影响,用MQ自带工具测试连接:

  • 使用amqssslc(如果是SSL通道)或amqsputc工具,传入testusermq的用户名密码,连接TEST队列管理器和TEST.CHANNEL通道
  • 如果工具测试也失败,说明问题在MQ端;如果工具能成功,再回头检查JBoss的资源适配器配置是否有其他问题

内容的提问来源于stack exchange,提问作者Ponmanikandan Boothalingam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:41:36