diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProvider.java
index 71e2d22015107612d85dc43a3e39e25da3182c7b..17a44647cd3820e539dc02bc8115fba27b3ed04e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProvider.java
@@ -35,7 +35,7 @@ import ch.systemsx.cisd.dbmigration.SimpleDatabaseConfigurationContext;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
 
 /**
- * 
+ * Data source provider based on configuration per Data Store Server.
  *
  * @author Franz-Josef Elmer
  */
@@ -68,7 +68,9 @@ public class DataStoreServerBasedDataSourceProvider implements IDataSourceProvid
         {
             String key = sectionProperties.getKey().toUpperCase();
             Properties properties = sectionProperties.getProperties();
-            dataSources.put(key, create(properties));
+            SimpleDatabaseConfigurationContext context =
+                    new SimpleDatabaseConfigurationContext(properties);
+            dataSources.put(key, context.getDataSource());
         }
     }
 
@@ -79,10 +81,10 @@ public class DataStoreServerBasedDataSourceProvider implements IDataSourceProvid
         {
             throw new UserFailureException("Unknown data set " + dataSetCode);
         }
-        return getDataSource(dataSet.getDataStore().getCode());
+        return getDataSourceByDataSetCode(dataSet.getDataStore().getCode(), technology);
     }
     
-    private DataSource getDataSource(String dssCode)
+    public DataSource getDataSourceByDataStoreServerCode(String dssCode, String technology)
     {
         DataSource dataSource = dataSources.get(dssCode);
         if (dataSource == null)
@@ -93,23 +95,4 @@ public class DataStoreServerBasedDataSourceProvider implements IDataSourceProvid
         return dataSource;
     }
 
-    private DataSource create(Properties properties)
-    {
-        return new SimpleDatabaseConfigurationContext(properties).getDataSource();
-    }
-
-    public DataSource getDataSourceByExperimentPermID(String experimentPermID, String technology)
-    {
-        throw new IllegalArgumentException(
-                "Getting data source by experiment permID is not supported for technology '"
-                        + technology + "'.");
-    }
-
-    public DataSource getDataSourceBySamplePermID(String samplePermID, String technology)
-    {
-        throw new IllegalArgumentException(
-                "Getting data source by sample permID is not supported for technology '"
-                + technology + "'.");
-    }
-
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataSourceProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataSourceProvider.java
index a8caedc02e4ccc80acd7b8b82a12214c6af93963..1029fe68deed5a2041bcf209cf11f8faa74c6289 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataSourceProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataSourceProvider.java
@@ -22,7 +22,7 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException;
 
 /**
  * Interface for providing a {@link DataSource} for a technology specific database based on data set
- * code or epxeriment/sample permID.
+ * code or data store server code
  * 
  * @author Franz-Josef Elmer
  */
@@ -38,20 +38,11 @@ public interface IDataSourceProvider
     public DataSource getDataSourceByDataSetCode(String dataSetCode, String technology);
 
     /**
-     * Returns an appropriated data source for specified experiment permID and technology.
+     * Returns an appropriated data source for specified data store server code and technology.
      * 
-     * @throws IllegalArgumentException if getting data source by experiment permID isn't supported
-     *             for the specified technology.
-     * @throws UserFailureException if the specified experiment doesn't exist.
+     * @throws IllegalArgumentException if getting data source by data store server code isn't
+     *             supported for the specified technology.
+     * @throws UserFailureException if the specified data store server doesn't exist.
      */
-    public DataSource getDataSourceByExperimentPermID(String experimentPermID, String technology);
-
-    /**
-     * Returns an appropriated data source for specified sample permID and technology.
-     * 
-     * @throws IllegalArgumentException if getting data source by sample permID isn't supported
-     *             for the specified technology.
-     * @throws UserFailureException if the specified sample doesn't exist.
-     */
-    public DataSource getDataSourceBySamplePermID(String samplePermID, String technology);
+    public DataSource getDataSourceByDataStoreServerCode(String dssCode, String technology);
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/SingleDataSourceProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/SingleDataSourceProvider.java
index 7acc645f218d7f74f3d498eea0c5df6ba7c37c3f..1d75b0428a3cec263317843f0ae58188fd38352b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/SingleDataSourceProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/SingleDataSourceProvider.java
@@ -42,12 +42,7 @@ public class SingleDataSourceProvider implements IDataSourceProvider
         return dataSource;
     }
 
-    public DataSource getDataSourceByExperimentPermID(String experimentPermID, String technology)
-    {
-        return dataSource;
-    }
-
-    public DataSource getDataSourceBySamplePermID(String samplePermID, String technology)
+    public DataSource getDataSourceByDataStoreServerCode(String dssCode, String technology)
     {
         return dataSource;
     }