1

我们在 EAR 部署中使用 WildFly (9.0.2) 和 Java EE 应用程序,MDB 通过 IBM MQ (9.0.0) 资源适配器连接。

现在我们体验到在部署过程中无法连接到MQ服务器时,部署失败:

java.lang.RuntimeException: 
com.ibm.mq.connector.DetailedResourceAdapterInternalException: 
MQJCA1011: Failed to allocate a JMS connection., error code: MQJCA1011 
An internal error caused an attempt to allocate a connection to fail. 

这种行为很糟糕,因为应用程序必须独立于该消息传递接口可用,并且应该继续其他部署,然后尝试重新连接到服务器。

在一个并行项目中,我们对一个 SonicMQ 服务器进行了相同的设置,该服务器以这种方式运行。

如何将 IBM MQ RA 配置为在部署时接受断开连接并在应用程序运行时重试?

4

1 回答 1

3

我遇到过同样的问题。通过在standalone-full.xml 中将属性startupRetryCount设置为1(默认为0 )来解决它:

    <subsystem xmlns="urn:jboss:domain:resource-adapters:3.0">
        <resource-adapters>
            <resource-adapter id="wmq.jmsra.rar">
                <archive>
                    wmq.jmsra.rar
                </archive>
                <config-property name="startupRetryCount">
                    1
                </config-property>

设置此属性后,我在 WildFly 日志中收到以下信息消息

[org.jboss.as.connector.deployers.RaXmlDeployer] (JMSCCThreadPoolWorker-5) wmq.jmsra.rar: MQJCA4014:Failed to reconnect one or more MDBs after a connection failure.

和部署的 MDB。

希望这也能为您解决!

于 2017-09-11T08:07:59.850 回答