2
respostas

Migrar C3P0 para Hikari em um projeto usando VRAPTOR

Boa tarde, estou em um projeto no qual utilizamos o C3P0 para administrar as conexões de conexão ao banco, gostaria de migrar para o Hikari devido aos testes de benchmark realizados... gostaria de saber se alguém já realizou ou implementou este recurso em algum sistema já existente ou se possível tem ideia de como realizar... por exemplo, habilitando no projeto via POM e substituindo algumas configurações.

2 respostas

Fala Lucas, tudo bem?

Já fiz esse procedimento, funciona sem problemas: https://www.baeldung.com/hikaricp

Se tiver alguma dúdiva manda aqui (=

no POM.xml as dependências estão assim...

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>4.3.11.Final</version>
            <exclusions>
                <exclusion>
                    <groupId>c3p0</groupId>
                    <artifactId>c3p0</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.mchange</groupId>
                    <artifactId>c3p0</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.11.Final</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator-cdi</artifactId>
            <version>5.0.1.Final</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.11.Final</version>
        </dependency>

Vi que no hibernate.cfg.xml tem essas configurações feitas para o c3p0

<property name="hibernate.dialect">${db.dialect}</property>
        <property name="hibernate.c3p0.min_size">${db.min_size}</property>
        <property name="hibernate.c3p0.max_size">${db.max_size}</property>
        <property name="hibernate.c3p0.timeout">300</property>
        <property name="hibernate.c3p0.acquire_increment">1</property>
        <property name="hibernate.c3p0.max_statements">100</property>
        <property name="hibernate.c3p0.idle_test_period">300</property>
        <property name="hibernate.c3p0.validate">true</property>
        <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property>
        <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
        <property name="connection.autoReconnect">true</property>
        <property name="connection.autoReconnectForPools">true</property>
        <property name="connection.is-connection-validation-required">true</property>

minha dúvida é em relação à configuração por exemplo, a url do banco e demais configurações utilizo um arquivo catalina.properties

#Oracle - DEV
db.username=abcde
db.password=abdce123
db.url=jdbc:oracle:thin:@127.0.0.1:1521:dev
db.default_schema=desenvolvimento
db.dialect=org.hibernate.dialect.Oracle10gDialect
db.driver=oracle.jdbc.driver.OracleDriver

ou se devo alterar em mais lugares para que não dê problemas.