Pool de Conexões com C3p0 + Spring + Hibernate não fecha conexões abertas

Olá a todos…

Estou tentando configurar um pool de conexões com hibernate e spring utilizando o banco de dados mysql. E de certa forma está rodando. As conexões são abertas e utilizadas de forma correta. Quando falta conexão ele abre (incrementa) as conexões, deixando-as abertas para a utilização.

Contudo, aqui vai a minha dúvida:

O c3p0 funciona de forma a abrir conexões e gerenciá-las de forma que eu não precise me preocupar com abrir ou fechar conexões, certo? Mesmo setando o timeout no sessionfactory, as conexões não são fechadas quando o tempo limite é atingido.

  1. O timeout ou outra propriedade funcionaria assim? Se uma conexão passar muito tempo ser utilizada ela não deveria ser fechada?

  2. O max pool size, é o máximo de conexões que o c3p0 pode abrir? Ou pode extrapolar esse valor?

  3. Eu vou realmente precisar fechar as conexões com um close? srsrsrsrr. Entendam eu quero q o próprio c3p0 faça isso pra mim, mas ainda não está fazendo.

<!-- Data Source -->  
   <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">  
      <property name="driverClass" value="com.mysql.jdbc.Driver"/>  
      <property name="jdbcUrl" value="jdbc:mysql://localhost/teste"/>  
       <property name="initialPoolSize" value="2"/>  
       <property name="acquireIncrement" value="3"/>  
       <property name="minPoolSize" value="2"/>  
       <property name="maxPoolSize" value="20"/>  
       <property name="maxStatements" value="0"/>  
       <property name="autoCommitOnClose" value="false"/>  
       <property name="checkoutTimeout"  value="20"/>  
       <property name="maxIdleTime" value="20"/>  
      <property name="properties">  
           <props>  
               <prop key="user">usuario</prop>  
               <prop key="password">senha</prop>  
           </props>  
       </property>  
   </bean>    
<!-- Session Factory -->  
   <bean id="sessionFactory"  
       class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
       <property name="dataSource" ref="dataSource" />  
       <property name="packagesToScan" value="packages.domain"/>  
  
       <property name="hibernateProperties">  
           <props>  
               <!-- Propriedades do hibernate -->  
               <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>  
               <prop key="hibernate.connection.release_mode">auto</prop>  
                <prop key="hibernate.transaction.auto_close_session">true</prop>  
               <prop key="hibernate.show_sql">false</prop>  
               [b]<prop key="hibernate.c3p0.timeout">30</prop>[/b]  
                 
               <prop key="hibernate.format_sql">false</prop>  
               <prop key="hibernate.use_sql_comments">false</prop>  
               <prop key="hibernate.hbm2ddl.auto">update</prop>  
           </props>  
       </property>  
   </bean>  

vlw

Amigo, estou com o mesmo problema que vc, como vc resolveu?

Não consegui da forma que eu queria, mas tenta colocar isso e testa:

Se alguém conseguir tirar a dúvida o problema ainda não foi resolvido; hehe

Vlw

Poste algumas das suas buscas, se você estiver fazendo uso (indevido) da Session, pode ser um erro na programação.

Flw! :thumbup:

Pessoal! Estou com exatamente o mesmo problema! O timeout que setei no C3P0 não fecha as conexões ao atingir o tempo de timeout! Alguma alma boa por aí? rs

Vlwww!