javax.jms.JMSException:配置超过50个资源适配器时,最大连接数(50)达到错误-MDB

时间:2018-07-06 10:11:08

标签: jms websphere message-queue websphere-8 jboss6.x

当我们尝试配置50个以上的MDB(每个MDB都使用不同的MQ)时,我们得到以下异常。我曾尝试如下更改standalone.xml配置,但仍然没有帮助。有人可以帮我们吗?

standalone.xml

<short-running-threads>
    <core-threads count="90"/>
    <queue-length count="90"/>
    <max-threads count="90"/>
    <keepalive-time time="10" unit="seconds"/>
</short-running-threads>
<long-running-threads>
    <core-threads count="90"/>
    <queue-length count="90"/>
    <max-threads count="90"/>
    <keepalive-time time="10" unit="seconds"/>
</long-running-threads>

Stacktrace:

  

错误[org.jboss.msc.service.fail](ServerService线程池-185)   MSC000001:无法启动服务   jboss.deployment.subunit。“ test.ear”。“ testAppMDB.jar” .component.TESTMDB.START:   服务中的org.jboss.msc.service.StartException   jboss.deployment.subunit。“ test.ear”。“ TestAppMDB.jar” .component.TESTMDB.START:   java.lang.RuntimeException:   com.ibm.mq.connector.DetailedResourceAdapterInternalException:   MQJCA1011:无法分配JMS连接。,错误代码:MQJCA1011   内部错误导致尝试分配连接失败。   有关失败的详细信息,请参见链接的异常。在   org.jboss.as.ee.component.ComponentStartService $ 1.run(ComponentStartService.java:57)   [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]在   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)   [rt.jar:1.8.0_102]位于   java.util.concurrent.FutureTask.run(FutureTask.java:266)   [rt.jar:1.8.0_102]位于   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)   [rt.jar:1.8.0_102]位于   java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)   [rt.jar:1.8.0_102]在java.lang.Thread.run(Thread.java:745)   [rt.jar:1.8.0_102]位于   org.jboss.threads.JBossThread.run(JBossThread.java:122)由以下原因引起:   java.lang.RuntimeException:   com.ibm.mq.connector.DetailedResourceAdapterInternalException:   MQJCA1011:无法分配JMS连接。,错误代码:MQJCA1011   内部错误导致尝试分配连接失败。   有关失败的详细信息,请参见链接的异常。在   org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponent.activate(MessageDrivenComponent.java:209)   在   org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponent.start(MessageDrivenComponent.java:181)   在   org.jboss.as.ee.component.ComponentStartService $ 1.run(ComponentStartService.java:54)   [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] ... 6   更多原因:   com.ibm.mq.connector.DetailedResourceAdapterInternalException:   MQJCA1011:无法分配JMS连接。,错误代码:MQJCA1011   内部错误导致尝试分配连接失败。   有关失败的详细信息,请参见链接的异常。在   com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:134)   在   com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:105)   在   com.ibm.mq.connector.inbound.ConnectionHandler.allocateConnection(ConnectionHandler.java:165)   在   com.ibm.mq.connector.inbound.MessageEndpointDeployment.acquireConnection(MessageEndpointDeployment.java:284)   在   com.ibm.mq.connector.inbound.MessageEndpointDeployment。(MessageEndpointDeployment.java:233)   在   com.ibm.mq.connector.ResourceAdapterImpl.endpointActivation(ResourceAdapterImpl.java:393)   在org.jboss.jca.core.rar.EndpointImpl.activate(EndpointImpl.java:191)   在   org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponent.activate(MessageDrivenComponent.java:207)   ... 8更多原因:javax.jms.JMSException:最大连接数(50)   到达com.ibm.mq.connector.in

2 个答案:

答案 0 :(得分:0)

很难通过堆栈跟踪的格式来判断,但是在我看来,异常来自WebSphereMQ JCA资源适配器,这表明问题出在WebSphereMQ服务器的配置上,这似乎是有限的可能的连接数为50。更改JBoss应用程序服务器中的线程池配置无法解决该问题。您需要更改WebSphereMQ服务器以允许50个以上的连接。

答案 1 :(得分:0)

您可以增加可用连接的数量(默认为50):

    <subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
        <resource-adapters>
            <resource-adapter id="wmq-jmsra.rar" statistics-enabled="true">
                <archive>
                    wmq-jmsra.rar
                </archive>
                <config-property name="maxConnections">
                    100
                </config-property>