2017-03-06 61 views
0

我在多個EC2主機上部署了服務。 1主機開始拋出錯誤。允許的最大連接數是5,並且在停電時,我可以看到活動連接詞的數量爲2.如果中斷在所有主機中都存在,那麼IT就會有意義,但我無法理解是什麼原因導致單個問題主辦。無法獲得連接,池在單個主機上耗盡

DB能夠提供連接。如果這是一個主機問題,我應該如何解決這個問題?

產生的原因:org.hibernate.exception.GenericJDBCException:無法打開 連接|在 org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140) |在 org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) |在 org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449) | at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) | org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)| at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81) | at 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) | at 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:超時 等待空閒對象| at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:756) | at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) | ... 34更多},

+0

什麼是您的應用程序服務器?你在使用tomcat嗎? – notionquest

回答

0

您說:「允許的最大連接數爲5,並且在停機時我可以看到活動連接詞的數量爲2。你如何看到失敗時的連接數量?

如果你可以做一個小實驗,你可以嘗試增加連接池大小,看看會發生什麼。