See the link below for more details about the C3P0 JDBC connection pool :
In the "pom.xml" file of your ejb project :
Add the dependencies below:
<dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>4.2.20.Final</version> </dependency>
In the "persistence.xml" file of your ejb project, in the <properties> tag, add the property below:
<property name="hibernate.connection.url" value="${jdbc.connection.url}" /> <property name="hibernate.connection.driver_class" value="${jdbc.driver.class}" /> <property name="hibernate.connection.username" value="${jdbc.user}" /> <property name="hibernate.connection.password" value="${jdbc.password}" /> <property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" /> <property name="hibernate.c3p0.min_size" value="${min.pool.size}" /> <property name="hibernate.c3p0.max_size" value="${max.pool.size}" /> <property name="hibernate.c3p0.max_statements" value="50" /> <property name="hibernate.c3p0.acquire_increment" value="1" /> <!-- new values for fixing the DB issues with Jboss7 --> <property name="hibernate.c3p0.idle_test_period" value="40" /> <property name="hibernate.c3p0.timeout" value="30" /> <!-- new properties that fix the DB issues we have in Jboss 7 --> <property name="hibernate.c3p0.unreturnedConnectionTimeout" value="400"/> <property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces" value="true"/>
In the parent POM of your project, be sure to have, In the <properties> tag of each <profile> :
<jdbc.connection.url>jdbc:postgresql:your-data-base-name</jdbc.connection.url> <jdbc.driver.class>org.postgresql.Driver</jdbc.driver.class> <jdbc.user>username</jdbc.user> <jdbc.password>password</jdbc.password> <min.pool.size>1</min.pool.size> <max.pool.size>3</max.pool.size>