diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/BasicDataSourceFactory.java b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/BasicDataSourceFactory.java
index 9d1142ea947590609b217fe8fcbe51f953a3bd5d..a15e7a8157cf3f24a942426665e2db3ea1c0d650 100644
--- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/BasicDataSourceFactory.java
+++ b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/BasicDataSourceFactory.java
@@ -45,7 +45,7 @@ public class BasicDataSourceFactory implements IDataSourceFactory
 
     @Override
     public final DataSource createDataSource(final String driver, final String url,
-            final String owner, final String password)
+            final String owner, final String password, final String validationQuery)
     {
         final BasicDataSource dataSource = new BasicDataSource();
         dataSource.setDriverClassName(driver);
@@ -55,7 +55,7 @@ public class BasicDataSourceFactory implements IDataSourceFactory
         dataSource.setMaxIdle(maxIdle);
         dataSource.setMaxActive(maxActive);
         dataSource.setMaxWait(maxWait);
-        dataSource.setValidationQuery("SELECT 1");
+        dataSource.setValidationQuery(validationQuery);
         return dataSource;
     }
 
diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
index b7580dec6249d1b55c4bfa85a195d27d998834b0..5d2608c64cacb5b2cfb1a0035ab72660d62436ae 100644
--- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
+++ b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
@@ -131,7 +131,8 @@ public class DatabaseConfigurationContext implements DisposableBean
     {
         final String dsDriver = getDriver();
         final String url = getDatabaseURL();
-        return dataSourceFactory.createDataSource(dsDriver, url, owner, password);
+        final String validationQuery = getValidationQuery();
+        return dataSourceFactory.createDataSource(dsDriver, url, owner, password, validationQuery);
     }
 
     /**
@@ -157,6 +158,11 @@ public class DatabaseConfigurationContext implements DisposableBean
         return databaseEngine.getDriverClass();
     }
 
+    private final String getValidationQuery() throws ConfigurationFailureException
+    {
+        checkDatabaseEngine();
+        return databaseEngine.getValidationQuery();
+    }
     /**
      * Returns user name of the administrator.
      * 
@@ -241,7 +247,7 @@ public class DatabaseConfigurationContext implements DisposableBean
         {
             adminDataSource =
                     dataSourceFactory.createDataSource(getDriver(), getAdminURL(), getAdminUser(),
-                            getAdminPassword());
+                            getAdminPassword(), getValidationQuery());
         }
         return adminDataSource;
     }
diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseEngine.java b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseEngine.java
index 01aee99b4f7a6c6fe2d85725d87ad276f1e71917..2f0e46b9f67b354a9bac020de7d73121612eba96 100644
--- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseEngine.java
+++ b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseEngine.java
@@ -21,13 +21,13 @@ import java.text.MessageFormat;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.springframework.jdbc.support.lob.LobHandler;
 import org.springframework.jdbc.support.lob.DefaultLobHandler;
+import org.springframework.jdbc.support.lob.LobHandler;
 
 import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
 import ch.systemsx.cisd.common.db.ISequencerHandler;
-import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.db.PostgreSQLSequencerHandler;
+import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.dbmigration.h2.H2DAOFactory;
 import ch.systemsx.cisd.dbmigration.postgresql.PostgreSQLDAOFactory;
 
@@ -40,11 +40,11 @@ public enum DatabaseEngine
 {
     POSTGRESQL("postgresql", "org.postgresql.Driver", PostgreSQLDAOFactory.class,
             new DefaultLobHandler(), new PostgreSQLSequencerHandler(), "jdbc:postgresql:{0}",
-            "jdbc:postgresql:{0}{1}", "//localhost/", "postgres"),
+            "jdbc:postgresql:{0}{1}", "//localhost/", "postgres", "SELECT 1"),
 
     H2("h2", "org.h2.Driver", H2DAOFactory.class, new DefaultLobHandler(),
             new PostgreSQLSequencerHandler(), "jdbc:h2:{0}{1};DB_CLOSE_DELAY=-1",
-            "jdbc:h2:{0}{1};DB_CLOSE_DELAY=-1", "file:db/", "sa");
+            "jdbc:h2:{0}{1};DB_CLOSE_DELAY=-1", "file:db/", "sa", null);
 
     private static Map<String, DatabaseEngine> engines = initEngineMap();
 
@@ -68,10 +68,12 @@ public enum DatabaseEngine
 
     private final String defaultAdminUser;
 
+    private final String validationQuery;
+
     @SuppressWarnings("unchecked")
     DatabaseEngine(String code, String driver, Class<?> daoFactoryClass, LobHandler lobHandler,
             ISequencerHandler sequenceHandler, String adminUrlTemplate, String urlTemplate,
-            String defaultURLHostPart, String defaultAdminUser)
+            String defaultURLHostPart, String defaultAdminUser, String validationQuery)
     {
         assert code != null;
         assert driver != null;
@@ -91,6 +93,7 @@ public enum DatabaseEngine
         this.driverClass = driver;
         this.lobHandler = lobHandler;
         this.sequenceHandler = sequenceHandler;
+        this.validationQuery = validationQuery;
         this.daoFactoryClass = (Class<ch.systemsx.cisd.dbmigration.IDAOFactory>) daoFactoryClass;
         try
         {
@@ -143,8 +146,8 @@ public enum DatabaseEngine
     }
 
     /**
-     * @param urlHostPartOrNull The host part of the URL, or <code>null</code>, if the default
-     *            host part should be used.
+     * @param urlHostPartOrNull The host part of the URL, or <code>null</code>, if the default host
+     *            part should be used.
      * @param databaseName The name of the database (may be ignored for the admin URL, depending on
      *            the database engine)
      * @return The admin URL of the db.
@@ -162,9 +165,14 @@ public enum DatabaseEngine
         return defaultAdminUser;
     }
 
+    public String getValidationQuery()
+    {
+        return validationQuery;
+    }
+
     /**
-     * @param urlHostPartOrNull The host part of the URL, or <code>null</code>, if the default
-     *            host part should be used.
+     * @param urlHostPartOrNull The host part of the URL, or <code>null</code>, if the default host
+     *            part should be used.
      * @param databaseName The name of the database.
      * @return The URL of the db.
      */
diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/IDataSourceFactory.java b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/IDataSourceFactory.java
index b97d14ad809a62c7b1e8df89fa0700924de74c69..11ece668230ee7ed18000ce9a418aa801c7d1e2b 100644
--- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/IDataSourceFactory.java
+++ b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/IDataSourceFactory.java
@@ -31,7 +31,8 @@ public interface IDataSourceFactory
     /**
      * Creates a data source for the specified database credentials.
      */
-    public DataSource createDataSource(String driver, String url, String owner, String password);
+    public DataSource createDataSource(String driver, String url, String owner, String password,
+            String validationQuery);
 
     /**
      * @see BasicDataSource#setMaxIdle(int)
diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/SimpleDatabaseConfigurationContext.java b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/SimpleDatabaseConfigurationContext.java
index 2a1840fb236e58aaa1225546803f9040fc9b205e..553f02886447684f488f0746dea4853c9934b2af 100644
--- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/SimpleDatabaseConfigurationContext.java
+++ b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/SimpleDatabaseConfigurationContext.java
@@ -53,6 +53,8 @@ public class SimpleDatabaseConfigurationContext implements DisposableBean
 
     static final String MAX_ACTIVE_KEY = "database-max-active";
 
+    static final String VALIDATION_QUERY_KEY = "validation-query";
+
     private IDataSourceFactory dataSourceFactory = new BasicDataSourceFactory();
 
     private DataSource dataSource;
@@ -65,14 +67,17 @@ public class SimpleDatabaseConfigurationContext implements DisposableBean
 
     private final String password;
 
+    private final String validationQuery;
+
     // for testing
     public SimpleDatabaseConfigurationContext(String driverClassName, String url, String username,
-            String password)
+            String password, String validationQuery)
     {
         this.driverClassName = driverClassName;
         this.url = url;
         this.username = username;
         this.password = password;
+        this.validationQuery = validationQuery;
     }
 
     public SimpleDatabaseConfigurationContext(Properties properties)
@@ -95,6 +100,8 @@ public class SimpleDatabaseConfigurationContext implements DisposableBean
         {
             dataSourceFactory.setMaxIdle(maxIdle);
         }
+
+        this.validationQuery = PropertyUtils.getProperty(properties, VALIDATION_QUERY_KEY);
     }
 
     /**
@@ -114,7 +121,8 @@ public class SimpleDatabaseConfigurationContext implements DisposableBean
      */
     private final DataSource createDataSource()
     {
-        return dataSourceFactory.createDataSource(driverClassName, url, username, password);
+        return dataSourceFactory.createDataSource(driverClassName, url, username, password,
+                validationQuery);
     }
 
     /** Closes opened database connections. */
diff --git a/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSourceFactory.java b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSourceFactory.java
index 798540db176b15c99339bfbd4d4c55d9660b65b5..0241cedb19dd478c642a7c6944a34088ebbededc 100644
--- a/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSourceFactory.java
+++ b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSourceFactory.java
@@ -8,7 +8,8 @@ public class SqlMigrationDataSourceFactory implements IDataSourceFactory
 {
 
     @Override
-    public DataSource createDataSource(String driver, String url, String owner, String password)
+    public DataSource createDataSource(String driver, String url, String owner, String password,
+            String validationQuery)
     {
         return new SqlMigrationDataSource(driver, url, owner, password);
     }