在我的项目设置--Jboss v4.3中,每个数据源都配置在不同的xyz-ds.xml文件中。我们需要放置大约6千个这样的DS文件。但是有了这么多的DS文件,JBoss无法从以下异常开始。是否有任何配置或默认值定义允许的最大数据源数量?我们如何改变它以容纳大约6到8千个数据源? 示例DS文件:xyz-ds.xml
<no-tx-datasource>
<jndi-name>ABC</jndi-name>
<connection-url>jdbc:sqlserver://DBconnectionDetails;</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>username</user-name>
<password>password</password>
<min-pool-size>1</min-pool-size>
<max-pool-size>4</max-pool-size>
<idle-timeout-minutes>20</idle-timeout-minutes>
使用5000个DS文件启动时出现异常:
2017-08-07 03:39:51,189 INFO [org.springframework.web.context.ContextLoader] Root WebApplicationContext:初始化完成时间为100704 ms 2017-08-07 03:40:15,829 ERROR [org.jboss.resource.adapter.jms.JmsSessionFactoryImpl]无法创建会话 javax.resource.ResourceException:配置的阻塞超时内没有ManagedConnections(30000 [ms]) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:306) 在org.jboss.resource.connectionmanager.JBossManagedConnectionPool $ BasePool.getConnection(JBossManagedConnectionPool.java:500) 在org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:348) 在org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:331) 在org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:403) at org.jboss.resource.connectionmanager.BaseConnectionManager2 $ ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:850) 在org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.allocateConnection(JmsSessionFactoryImpl.java:395) 在org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.createSession(JmsSessionFactoryImpl.java:374) 在org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196) 在org.springframework.jms.listener.AbstractPollingMessageListenerContainer.access $ 200(AbstractPollingMessageListenerContainer.java:78) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer $ MessageListenerContainerResourceFactory.createSession(AbstractPollingMessageListenerContainer.java:506) 在org.springframework.jms.connection.ConnectionFactoryUtils.doGetTransactionalSession(ConnectionFactoryUtils.java:301) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:286) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:241) at org.springframework.jms.listener.DefaultMessageListenerContainer $ AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) at org.springframework.jms.listener.DefaultMessageListenerContainer $ AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:881) 在org.springframework.jca.work.DelegatingWork.run(DelegatingWork.java:57) 在org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:213) 在org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275) 在EDU.oswego.cs.dl.util.concurrent.PooledExecutor $ Worker.run(PooledExecutor.java:756) 在java.lang.Thread.run(Thread.java:745)