This article describes how to enable connection pooling with hibernate using c3po.

  1. Get the jars from www.sos-berlin.com/download/jobscheduler_c3po.zip
  2. Unzip the jars to scheduler_home/lib
  3. Open scheduler_data/config/hibernate.cfg.cml
  4. Add the settings for c3po
  5. Restart JobScheduler
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 ''<hibernate-configuration>''
 '' <session-factory>''
 '' <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>''
 '' <property name="hibernate.connection.password">pwd</property>''
 '' <property name="hibernate.connection.url">jdbc:postgresql://server:5432/test</property>''
 '' <property name="hibernate.connection.username">user</property>''
 '' <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>''
 '' <property name="hibernate.show_sql">false</property>''
 '' <property name="hibernate.connection.autocommit">false</property>''
 '' <property name="hibernate.format_sql">true</property>''
 '' <property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>''
  
  '''<property name="hibernate.c3p0.min_size">5</property>'''
  '''<property name="hibernate.c3p0.max_size">20</property>'''
  '''<property name="hibernate.c3p0.timeout">300</property>'''
  '''<property name="hibernate.c3p0.max_statements">50</property>'''
  '''<property name="hibernate.c3p0.idle_test_period">3000</property>'''
 ''</session-factory>''
 ''</hibernate-configuration>''

A short description of the Parameters:

  1. hibernate.c3p0.min_size – Minimum number of JDBC connections in the pool. Hibernate default: 1
  2. hibernate.c3p0.max_size – Maximum number of JDBC connections in the pool. Hibernate default: 100
  3. hibernate.c3p0.timeout – When an idle connection is removed from the pool (in second). Hibernate default: 0, never expire.
  4. hibernate.c3p0.max_statements – Number of prepared statements will be cached. Increase performance. Hibernate default: 0 , caching is disable.
  5. hibernate.c3p0.idle_test_period – idle time in seconds before a connection is automatically validated. Hibernate default: 0

For more details have a look at https://community.jboss.org/wiki/HowToConfigureTheC3P0ConnectionPool