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

Payara 5中wmq.jmsra连接失败:MQJCA1011无法分配JMS连接

问题:Payara 5.2022.5中WMQ JMS资源适配器连接池间歇性抛出NoSuchMethodException

在Payara 5.2022.5应用服务器中安装了wmq.jmsra资源适配器,通过以下asadmin命令创建连接器连接池及对应资源:

./asadmin create-connector-connection-pool --raname wmq.jmsra --connectiondefinition javax.jms.ConnectionFactory --transactionsupport XATransaction --property transportType=CLIENT:queueManager=QMANAGER:hostName=HOSTIP:port=PORT:channel=CHANNEL:username=USER:password=PASSWORD:applicationName=APPNAME wmq.jmsra-pool

./asadmin create-connector-resource --poolname wmq.jmsra-pool jms/JmsConnectionFactory

此前运行正常,远程调试时偶尔会重新部署使用该连接池的应用,但突然出现异常——5分钟前还能正常运行。

已尝试的解决操作:

  • 重启队列管理器
  • 删除并重新创建连接池定义
  • 卸载后重新配置wmq.jmsra
  • 重启Payara域
  • 重启所有设备(包括本地电脑)—— 问题暂时解决,但一段时间后再次复现

异常核心表现:日志提示找不到com.ibm.mq.jmqi.remote.api.RemoteFAP类的指定构造方法,但在已部署的wmq.jmsra的jmqi jar包中能确认该类存在。

完整异常日志如下:

[2023-06-07T12:46:33.739+0300] [Payara 5.2022.5] [SEVERE] [] [] [tid: _ThreadID=346 _ThreadName=Thread-39] [timeMillis: 1686131193739] [levelValue: 1000] [[
  com.ibm.msg.client.jms.DetailedJMSException: MQJCA1011: Failed to allocate a JMS connection.
An internal error caused an attempt to allocate a connection to fail.
See the linked exception for details of the failure.
    at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:184)
    at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:135)
    at com.ibm.mq.connector.outbound.ConnectionFactoryImpl.createManagedJMSConnection(ConnectionFactoryImpl.java:402)
    at com.ibm.mq.connector.outbound.ConnectionFactoryImpl.createConnectionInternal(ConnectionFactoryImpl.java:252)
    at com.ibm.mq.connector.outbound.ConnectionFactoryImpl.createConnection(ConnectionFactoryImpl.java:225)
    at com.ibm.mq.connector.outbound.ConnectionFactoryImpl.createConnection(ConnectionFactoryImpl.java:201)
    at com.heirloomcomputing.ecs.mqi.jms.module.StandardJMSModule.createConnection(StandardJMSModule.java:206)
    at com.heirloomcomputing.ecs.mqi.jms.module.StandardJMSModule.obtainConnection(StandardJMSModule.java:437)
    at com.heirloomcomputing.ecs.mqi.jms.JMSConnectionManager.mqConnect(JMSConnectionManager.java:61)
    at com.heirloomcomputing.ecs.mqi.MQIConnectionManagerAbstract.createConnection(MQIConnectionManagerAbstract.java:221)
    at com.heirloomcomputing.ecs.mqi.MQIConnectionManagerAbstract.mqConnect(MQIConnectionManagerAbstract.java:280)
    ......
    at com.heirloomcomputing.etp.transaction.services.IntervalControl$1.run(IntervalControl.java:390)
Caused by: com.sun.appserv.connectors.internal.api.PoolingException: MQJCA1011: Failed to allocate a JMS connection., error code: MQJCA1011
    at com.sun.enterprise.resource.pool.datastructure.RWLockDataStructure.addResource(RWLockDataStructure.java:108)
    at com.sun.enterprise.resource.pool.ConnectionPool.addResource(ConnectionPool.java:288)
    at com.sun.enterprise.resource.pool.ConnectionPool.createResourceAndAddToPool(ConnectionPool.java:1532)
    at com.sun.enterprise.resource.pool.ConnectionPool.createResources(ConnectionPool.java:957)
    at com.sun.enterprise.resource.pool.ConnectionPool.initPool(ConnectionPool.java:236)
    at com.sun.enterprise.resource.pool.ConnectionPool.internalGetResource(ConnectionPool.java:527)
    at com.sun.enterprise.resource.pool.ConnectionPool.getResource(ConnectionPool.java:388)
    at com.sun.enterprise.resource.pool.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:244)
    at com.sun.enterprise.resource.pool.PoolManagerImpl.getResource(PoolManagerImpl.java:171)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.getResource(ConnectionManagerImpl.java:354)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:307)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:196)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:171)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:166)
    at com.ibm.mq.connector.outbound.ConnectionFactoryImpl.createManagedJMSConnection(ConnectionFactoryImpl.java:309)
    ... 22 more
Caused by: com.sun.appserv.connectors.internal.api.PoolingException: MQJCA1011: Failed to allocate a JMS connection., error code: MQJCA1011
    at com.sun.enterprise.resource.pool.ConnectionPool.createSingleResource(ConnectionPool.java:932)
    at com.sun.enterprise.resource.pool.ConnectionPool.createResource(ConnectionPool.java:1209)
    at com.sun.enterprise.resource.pool.datastructure.RWLockDataStructure.addResource(RWLockDataStructure.java:100)
    ... 36 more
Caused by: com.sun.appserv.connectors.internal.api.PoolingException: MQJCA1011: Failed to allocate a JMS connection., error code: MQJCA1011
    at com.sun.enterprise.resource.allocator.ConnectorAllocator.createResource(ConnectorAllocator.java:184)
    at com.sun.enterprise.resource.pool.ConnectionPool.createSingleResource(ConnectionPool.java:919)
    ... 38 more
Caused by: com.ibm.mq.connector.DetailedResourceException: MQJCA1011: Failed to allocate a JMS connection., error code: MQJCA1011 An internal error caused an attempt to allocate a connection to fail. See the linked exception for details of the failure.
    at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:169)
    at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:135)
    at com.ibm.mq.connector.ConnectionBuilder.createConnection(ConnectionBuilder.java:162)
    at com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl.createConnection(ManagedConnectionFactoryImpl.java:655)
    at com.ibm.mq.connector.outbound.ManagedConnectionImpl.<init>(ManagedConnectionImpl.java:212)
    at com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl.createManagedConnection(ManagedConnectionFactoryImpl.java:248)
    at com.sun.enterprise.resource.allocator.ConnectorAllocator.createResource(ConnectorAllocator.java:164)
    ... 39 more
Caused by: com.ibm.msg.client.jms.DetailedJMSException: JMSFMQ6312: An exception occurred in the Java(tm) MQI.
The Java(tm) MQI has thrown an exception describing the problem. 
See the linked exception for further information.
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:334)
    at com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:226)
    at com.ibm.msg.client.wmq.factories.WMQXAConnectionFactory.createV7ProviderConnection(WMQXAConnectionFactory.java:172)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:8023)
    at com.ibm.msg.client.wmq.factories.WMQXAConnectionFactory.createProviderXAConnection(WMQXAConnectionFactory.java:98)
    at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createXAConnectionInternal(JmsConnectionFactoryImpl.java:385)
    at com.ibm.mq.jms.MQXAConnectionFactory.createXAConnection(MQXAConnectionFactory.java:137)
    at com.ibm.mq.connector.ConnectionBuilder.createConnection(ConnectionBuilder.java:134)
    ... 43 more
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195;AMQ9546: Error return code received. [1=java.lang.NoSuchMethodException[com.ibm.mq.jmqi.remote.api.RemoteFAP.<init>(com.ibm.mq.jmqi.JmqiEnvironment,int)],3=Class.getConstructor0]
    at com.ibm.mq.jmqi.JmqiEnvironment.getInstance(JmqiEnvironment.java:855)
    at com.ibm.mq.jmqi.JmqiEnvironment.getMQI(JmqiEnvironment.java:699)
    at com.ibm.msg.client.wmq.factories.WMQXAConnectionFactory.createV7ProviderConnection(WMQXAConnectionFactory.java:164)
    ... 48 more
Caused by: java.lang.NoSuchMethodException: com.ibm.mq.jmqi.remote.api.RemoteFAP.<init>(com.ibm.mq.jmqi.JmqiEnvironment,int)
    at java.base/java.lang.Class.getConstructor0(Class.java:3585)
    at java.base/java.lang.Class.getConstructor(Class.java:2271)
    at com.ibm.mq.jmqi.JmqiEnvironment.getInstance(JmqiEnvironment.java:761)
    ... 50 more
]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:17:01