diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
index d8eda33f8897d0d436f157bd29e1d5720305f0ea..f2785b1fe0a94e5e5a7bbf4061065c956bafdf7a 100644
--- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
+++ b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
@@ -24,6 +24,7 @@ import org.apache.commons.dbcp.BasicDataSource;
 import org.springframework.jdbc.support.lob.LobHandler;
 
 import ch.systemsx.cisd.common.db.ISequencerScriptProvider;
+import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 
 /**
  * Configuration context for database operations.
@@ -77,8 +78,23 @@ public class DatabaseConfigurationContext
     private final DataSource createDataSource()
     {
         final BasicDataSource myDataSource = new BasicDataSource();
-        myDataSource.setDriverClassName(getDriver());
-        final String url = MessageFormat.format(getUrlTemplate(), getDatabaseName());
+        final String dsDriver = getDriver();
+        if (dsDriver == null)
+        {
+            throw new ConfigurationFailureException("No db driver defined.");
+        }
+        final String dsUrlTemplate = getUrlTemplate();
+        if (dsUrlTemplate == null)
+        {
+            throw new ConfigurationFailureException("No db url template defined.");
+        }
+        final String dsDatabaseName = getDatabaseName();
+        if (dsDatabaseName == null)
+        {
+            throw new ConfigurationFailureException("No db name defined.");
+        }
+        myDataSource.setDriverClassName(dsDriver);
+        final String url = MessageFormat.format(dsUrlTemplate, dsDatabaseName);
         myDataSource.setUrl(url);
         myDataSource.setUsername(owner);
         myDataSource.setPassword("");