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

0 respostas
andersonlandim

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

Criado 14 de dezembro de 2010
Respostas 0
Participantes 1