IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted


Sujet :

Hibernate Java

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
    Salut,

    J ai un petit soucis avec hibernate, et je ne comprend pas très bien le mécanisme qui en découle.

    Depuis mon application web, je vais sur une page et lorsque je regarde les connections utilisés il y a une bonne vingtaine de connexions ouvertes.

    Ainsi lorsque je selectionne un combo box j ai d'autres requêtes qui sont effectués et j obtient le message d'erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Caused by: 2006.08.11 13:47:13.936 FATAL_SOFT_DataAccessException Data access error with Hibernate !
    	at com.mtsa.common.control.ErrorController.handleError(ErrorController.java:317)
    	at com.mtsa.common.control.ErrorController.handleError(ErrorController.java:283)
    	at com.mtsa.ebonus.core.db.MessageDbDAO.findById(MessageDbDAO.java:60)
    	at com.mtsa.ebonus.core.business.MessageServiceImpl.getMessage(MessageServiceImpl.java:91)
    	... 105 more
    Caused by: org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [null]; error code [0]; Cannot get a connection, pool exhausted; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
    	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:96)
    	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:257)
    	at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
    	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:411)
    	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:370)
    	at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:464)
    	at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:458)
    	at com.mtsa.ebonus.core.db.MessageDbDAO.findById(MessageDbDAO.java:53)
    	... 106 more
    Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
    	at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103)
    	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
    	at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:80)
    	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
    	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    	at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:105)
    	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
    	at org.hibernate.loader.Loader.doQuery(Loader.java:661)
    	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    	at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
    	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:47)
    	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:41)
    	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2730)
    	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:365)
    	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:346)
    	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:123)
    	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:177)
    	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
    	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
    	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:799)
    	at org.springframework.orm.hibernate3.HibernateTemplate$2.doInHibernate(HibernateTemplate.java:470)
    	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:365)
    	... 109 more
    Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
    	at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:756)
    	at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:74)
    	at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
    	... 130 more

  2. #2
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    C'est le principe du pool de connexion, il ouvre autant de connexions au SGBD que le nombre que tu as configuré. Il possède aussi une file d'attente en règle générale.

    Petites questions :
    1/ tu utilises DBCP ?
    2/ il est paramétré sur Tomcat ou Hibernate ?
    See you, space cowboy... and if you're satisfied, click on

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    salut,on utilise c3p0 configurer de la manière suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    		<property name="hibernateProperties">
    			<props>
    				<!-- Specify the dialect -->
    				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    				<!-- Auto-update Database (possible loss of data) -->
    				<prop key="hibernate.hbm2ddl.auto">validate</prop>
    				<!-- Display and format SQL request -->
    				<prop key="hibernate.show_sql">true</prop>
    				<prop key="hibernate.format_sql">false</prop>
    				<!-- Connection pool configuration -->
    				<prop key="hibernate.connection.autoReconnect">true</prop>
    				<prop key="hibernate.c3p0.min_size">5</prop>
    				<prop key="hibernate.c3p0.max_size">50</prop>
    				<prop key="hibernate.c3p0.timeout">1800</prop>
    				<prop key="hibernate.c3p0.max_statements">50</prop>
    				<prop key="hibernate.c3p0.autoCommitOnClose">true</prop>
    				<!-- Cache -->
    				<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
    				<prop key="hibernate.cache.query_cache_factory">org.hibernate.cache.StandardQueryCacheFactory</prop>
    			</props>
    		</property>

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    finalement en ajoutant hibernate.connection.release_mode a auto cela corrige le pb désolé du dérangement =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/07/2010, 12h34
  2. Réponses: 1
    Dernier message: 16/05/2010, 19h41
  3. Réponses: 1
    Dernier message: 23/01/2009, 15h07
  4. Cannot get a connection, pool exhausted
    Par questionneuse dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 09/08/2007, 07h31
  5. Réponses: 4
    Dernier message: 30/07/2007, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo