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

如何在Wildfly资源适配器中配置MQ客户端自动重连

IBM MQ资源适配器重连配置失败问题

我使用wmq.jakarta.jmsra.rar(9.3.3.1版本)资源适配器配合Wildfly的消息驱动Bean接收IBM MQ消息,当MQ服务器因网络故障断开后,连接无法自动重建。我尝试添加reconnectionRetryInterval和reconnectionRetryCount参数到standalone.xml的连接定义中,配置如下:

<subsystem xmlns="urn:jboss:domain:resource-adapters:6.1">
        <resource-adapters>
            <resource-adapter id="wmq.jakarta.jmsra.rar">
                <archive>
                    wmq.jakarta.jmsra.rar
                </archive>
                <transaction-support>NoTransaction</transaction-support>
                <connection-definitions>
                    <connection-definition class-name="com.ibm.mq.jakarta.connector.outbound.ManagedConnectionFactoryImpl" jndi-name="java:jboss/jms/Isp4dQueueManager" tracking="false" pool-name="mqConnectionFactory">
                        <config-property name="hostName">
                            somehostname
                        </config-property>
                        <config-property name="port">
                            1234
                        </config-property>
                        <config-property name="transportType">
                            CLIENT
                        </config-property>
                        <config-property name="channel">
                            SomeChannel
                        </config-property>
                        <config-property name="queueManager">
                            SomeQueuemanager
                        </config-property>
                        <config-property name="username">
                            username
                        </config-property>
                        <config-property name="password">
                            password
                        </config-property>
                        <config-property name="reconnectionRetryCount">
                            30
                        </config-property>
                        <config-property name="reconnectionRetryInterval">
                            5000
                        </config-property>
                    </connection-definition>
                </connection-definitions>
</subsystem>

启动Wildfly时抛出错误:

Caused by: org.jboss.jca.deployers.common.DeployException: IJ020060: Unable to inject: com.ibm.mq.jakarta.connector.outbound.ManagedConnectionFactoryImpl property: reconnectionRetryCount value: 30

正确配置方式

问题核心是重连参数的配置位置错误:reconnectionRetryCount和reconnectionRetryInterval属于资源适配器级别的配置属性,而非连接定义级别。需要将这两个参数移到<resource-adapter>节点下,而非<connection-definition>内部。

修正后的配置示例:

<subsystem xmlns="urn:jboss:domain:resource-adapters:6.1">
        <resource-adapters>
            <resource-adapter id="wmq.jakarta.jmsra.rar">
                <archive>
                    wmq.jakarta.jmsra.rar
                </archive>
                <transaction-support>NoTransaction</transaction-support>
                <!-- 重连参数配置在资源适配器级别 -->
                <config-property name="reconnectionRetryCount">30</config-property>
                <config-property name="reconnectionRetryInterval">5000</config-property>
                <connection-definitions>
                    <connection-definition class-name="com.ibm.mq.jakarta.connector.outbound.ManagedConnectionFactoryImpl" jndi-name="java:jboss/jms/Isp4dQueueManager" tracking="false" pool-name="mqConnectionFactory">
                        <config-property name="hostName">
                            somehostname
                        </config-property>
                        <config-property name="port">
                            1234
                        </config-property>
                        <config-property name="transportType">
                            CLIENT
                        </config-property>
                        <config-property name="channel">
                            SomeChannel
                        </config-property>
                        <config-property name="queueManager">
                            SomeQueuemanager
                        </config-property>
                        <config-property name="username">
                            username
                        </config-property>
                        <config-property name="password">
                            password
                        </config-property>
                    </connection-definition>
                </connection-definitions>
            </resource-adapter>
        </resource-adapters>
</subsystem>

额外注意事项:

  • 确认资源适配器版本(9.3.3.1)支持这两个重连参数,IBM MQ 9.3及以上版本的Jakarta EE资源适配器已提供该功能
  • 配置修改后需重启Wildfly使设置生效
  • 若需更精细的连接可用性控制,可结合Wildfly连接池的validate-on-match、background-validation等配置,但核心重连逻辑由MQ资源适配器处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:55:06