无法获得连接,在单个主机

时间:2017-03-06 18:47:49

标签: java spring oracle hibernate jdbc

我在多个EC2主机上部署了一项服务。 1个主机开始抛出错误。允许的最大连接数为5,在中断时我可以看到活动连接数为2.如果中断是在所有主机上进行的话,那将是有意义的但我无法理解导致问题的原因是什么主办。

DB能够提供连接。如果这是主机问题,我该如何解决?

  

引起:org.hibernate.exception.GenericJDBCException:无法打开   连接|在   org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)   |在   org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)   |在   org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)   |在   org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)   |在   org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)   |在   org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)   | at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)|   在   org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)   |在   org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)   |在   org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:560)   | ... 26更多|引起:org.apache.commons.dbcp.SQLNestedException:   无法连接,池耗尽|在   org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103)   |在   org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)   |在   org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:85)   |在   org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)   | ... 31更多|引起:java.util.NoSuchElementException:超时   等待空闲对象|在   org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:756)   |在   org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)   | ... 34更多},

1 个答案:

答案 0 :(得分:0)

你说,"允许的最大连接数为5,在停机时我可以看到活动连接数为2。"你如何看到失败时的连接数?

如果您能够进行一些实验,可以尝试增加连接池大小,看看会发生什么。