当我们尝试配置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
答案 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>