Hibernate connection issue with CentOS, MySQL & Tomcat 7

If you are working on CentOS and MySQL, you will want to make sure you verify your connection after the application has been left untouched for some time. Without trying to verify connection you’ll end up with a stack trace complaining “Could not open Hibernate Session…”. Surprisingly this does not happen on Windows with the same configuration. I am using commons-dbcp.jar and commons-pool.jar. Here is my configuration –

<!–  Define dataSource to use –>
<bean id=”dataSource” class=”org.apache.commons.dbcp.BasicDataSource”>
<property name=”driverClassName” value=”${hibernate.jdbc.driver}” />
<property name=”url” value=”${hibernate.jdbc.url}” />
<property name=”username” value=”${hibernate.jdbc.user}” />
<property name=”password” value=”${hibernate.jdbc.password}” />
</bean>

<!–  The sessionFactory will scan the domain objects and their annotated relationships. –>
<bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean”>
<property name=”dataSource” ref=”dataSource” />
<!–  Packages to scan probably works but I will use xml definitions –>
<!–
<property name=”packagesToScan”>
<list>
<value=”com.d2.tej.domain” />
<value=”com.d2.tej.dao.impl” />
<value=”com.d2.tej.service.impl” />
</list>
</property>
–>
<property name=”annotatedClasses”>
<list>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.AdminUser</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.AdminLogin</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.Code</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.Patient</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.PatientDetail</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.PodType</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.PodTypeContent</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.Practice</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.Procedure</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.Surgeon</value>
<value>com.OrthoPatientDirect.OPDJAR.core.domain.Subscription</value>
</list>
</property>
<property name=”schemaUpdate” value=”true” />
<property name=”hibernateProperties”>
<props>
<prop key=”hibernate.connection.isolation”>2</prop>
<prop key=”hibernate.bytecode.use_reflection_optimizer”>true</prop>
<!– <prop key=”hibernate.dialect”>org.hibernate.dialect.SQLServerDialect</prop>–>
<prop key=”hibernate.dialect”>org.hibernate.dialect.MySQLInnoDBDialect</prop>
<!– org.hibernate.dialect.MySQLMyISAMDialect, org.hibernate.dialect.MySQLDialect, org.hibernate.dialect.MySQLInnoDBDialect –>
<prop key=”hibernate.jdbc.batch_size”>10</prop>
<prop key=”hibernate.max_fetch_depth”>2</prop>
<prop key=”hibernate.show_sql”>true</prop>
<prop key=”hibernate.format_sql”>true</prop>
<prop key=”hibernate.hbm2ddl.auto”>update</prop>
<!–connection pool–>
<prop key=”hibernate.dbcp.maxActive”>10</prop>
<prop key=”hibernate.dbcp.whenExhaustedAction”>1</prop>
<prop key=”hibernate.dbcp.maxWait”>20000</prop>
<prop key=”hibernate.dbcp.maxIdle”>10</prop>

<!– prepared statement cache–>
<prop key=”hibernate.dbcp.ps.maxActive”>10</prop>
<prop key=”hibernate.dbcp.ps.whenExhaustedAction”>1</prop>
<prop key=”hibernate.dbcp.ps.maxWait”>20000</prop>
<prop key=”hibernate.dbcp.ps.maxIdle”>10</prop>

<!– optional query to validate pooled connections:–>
<prop key=”hibernate.dbcp.validationQuery”>select 1</prop>
<prop key=”hibernate.dbcp.testOnBorrow”>true</prop>
<prop key=”hibernate.dbcp.testOnReturn”>true</prop>

</props>
</property>
<!–If you want to configure any listeners for any event this is the place to do.  –>
<!–
<property name=”eventListeners”>
<map>
<entry key=”delete”>
<bean class=”com.tej.core.hibernate.listener.DeleteEventListener” />
</entry>
</map>
</property>
–>
</bean>

Comment on this:

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s