Hibernate +c3p0 +nao fecha as conexoes

Pessoal é o seguinte…

estou desenvolvendo uma aplicação com JSF2 + Hibernate +spring para rodar no Glassfish.

aqui esta a configuração do hibernate:

 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
                <prop key="hibernate.connection.url">jdbc:mysql://localhost/tisystems_sisprev</prop>
                <prop key="hibernate.connection.username">root</prop>
                <prop key="hibernate.connection.password"></prop>
                <prop key="current_session_context_class">thread</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="cache.provider_class">org.hibernate.chache.NoCacheProvider</prop>
                <prop key="hibernate.c3p0.acquire_increment">5</prop>
                <prop key="hibernate.c3p0.idle_test_period">900</prop>
                <prop key="hibernate.c3p0.max_size">30</prop>
                <prop key="hibernate.c3p0.max_statements">0</prop>
                <prop key="hibernate.c3p0.min_size">3</prop>
                <prop key="hibernate.c3p0.timeout">1800</prop>
                <prop key="hibernate.hbm2ddl.auto">none</prop>

O que acontece é que apos o hibernate gerar as 30 conexoes com o mysql o sistema para…

será que alguem pode me dar uma luz??

Opa, é só aumentar o valor dessa propriedade

<prop key="hibernate.c3p0.max_size">30</prop> 

em vez de 30 aumenta ela… ela que limita o maximo de conexoes abertas…

espero que seja isso…

Vlw. :slight_smile:

Eu ja fiz isso para resolver o problema por enquanto.
Porem creio que aumentando esta propriedade não vou resolver, so fazer com que ele demore mais para acontecer.

Ola Lucas

Diminua o tempo do idle_test e tambem do timeout: melhor que tudo falhe o mais rapido possivel.

Voce esta fechando suas sessions corretamente? Dentro de um open-session-in-view? Pode postar o codigo?

Alem disso, o sistema lanca exceptoion ou fica eternamente esperando uma conexao? (diminuir o timeout vai ajudar ja)

Ola Paulo…

Parece estranho mais mesmo quanto estoura o tempo do timeout ele não lança nenhuma exceção.

Eu abro o session no inicio ta transação com o banco e fecho no final…mais tarde eu posto o codigo…

eu retirei a linha …

 <prop key="hibernate.c3p0.max_size">30</prop> 

e agora quando executo um show processlist no mysql vejo q apos um tempo ele fecha as conexoes ociosas…o que não estava acontecendo…