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.
-
O timeout ou outra propriedade funcionaria assim? Se uma conexão passar muito tempo ser utilizada ela não deveria ser fechada?
-
O max pool size, é o máximo de conexões que o c3p0 pode abrir? Ou pode extrapolar esse valor?
-
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