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();