You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2013/03/06 14:19:10 UTC
svn commit: r1453322 -
/wookie/trunk/src/org/apache/wookie/beans/jpa/JPAModule.java
Author: scottbw
Date: Wed Mar 6 13:19:10 2013
New Revision: 1453322
URL: http://svn.apache.org/r1453322
Log:
Ensure we test data source connections to avoid stale connections throwing errors. See WOOKIE-404.
Modified:
wookie/trunk/src/org/apache/wookie/beans/jpa/JPAModule.java
Modified: wookie/trunk/src/org/apache/wookie/beans/jpa/JPAModule.java
URL: http://svn.apache.org/viewvc/wookie/trunk/src/org/apache/wookie/beans/jpa/JPAModule.java?rev=1453322&r1=1453321&r2=1453322&view=diff
==============================================================================
--- wookie/trunk/src/org/apache/wookie/beans/jpa/JPAModule.java (original)
+++ wookie/trunk/src/org/apache/wookie/beans/jpa/JPAModule.java Wed Mar 6 13:19:10 2013
@@ -96,6 +96,21 @@ public class JPAModule implements IModul
dataSource.setMaxIdle(80);
dataSource.setInitialSize(5);
dataSource.setMaxOpenPreparedStatements(0);
+
+
+ //
+ // Configure database connection to validate stale connections.
+ // The validation query to use is database specific
+ //
+ String validationQuery = "SELECT 1";
+ if (dbType.equals("derby")) validationQuery = "VALUES 1";
+ if (dbType.equals("oracle")) validationQuery = "SELECT 1 FROM DUAL";
+ if (dbType.equals("postgresql")) validationQuery = "select version();";
+ if (dbType.equals("hsqldb")) validationQuery = "select 1 from INFORMATION_SCHEMA.SYSTEM_USERS";
+ if (dbType.equals("db2")) validationQuery = "select 1 from sysibm.sysdummy1";
+ if (dbType.equals("mssql")) validationQuery = "sql select 1";
+ dataSource.setTestOnBorrow(true);
+ dataSource.setValidationQuery(validationQuery);
// Set up connection pool
GenericObjectPool pool = new GenericObjectPool();