diff --git a/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb b/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb
index bcf8aa001a1c449b5e004ae7e302c2d02abceb00..5b9a3a171377d7422a114a31b9e63c454f6336ab 100644
--- a/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb
+++ b/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb
@@ -81,7 +81,8 @@
     "\n",
     "from cal_tools.tools import (gain_map_files, parse_runs, \n",
     "                             run_prop_seq_from_path, get_notebook_name, \n",
-    "                             get_dir_creation_date, save_const_to_h5)\n",
+    "                             get_dir_creation_date, save_const_to_h5,\n",
+    "                             get_random_db_interface)\n",
     "from cal_tools.influx import InfluxLogger\n",
     "from cal_tools.enums import BadPixels\n",
     "from cal_tools.plotting import show_overview, plot_badpix_3d, create_constant_overview\n",
@@ -121,6 +122,9 @@
     "\n",
     "print(\"Using {} as creation time of constant.\".format(creation_time))\n",
     "\n",
+    "cal_db_interface = get_random_db_interface(cal_db_interface)\n",
+    "print('Calibration database interface: {}'.format(cal_db_interface))\n",
+    "\n",
     "loc = None\n",
     "if instrument == \"SPB\":\n",
     "    loc = \"SPB_DET_AGIPD1M-1\"\n",
diff --git a/notebooks/DSSC/Characterize_DSSC_Darks_NBC.ipynb b/notebooks/DSSC/Characterize_DSSC_Darks_NBC.ipynb
index 5dea2314e27e7de7ae82f460c1eefcd56ac93422..dc60b39773932ecf5690915ddc8591e4937859c5 100644
--- a/notebooks/DSSC/Characterize_DSSC_Darks_NBC.ipynb
+++ b/notebooks/DSSC/Characterize_DSSC_Darks_NBC.ipynb
@@ -74,7 +74,9 @@
     "import matplotlib.pyplot as plt\n",
     "%matplotlib inline\n",
     "\n",
-    "from cal_tools.tools import gain_map_files, parse_runs, run_prop_seq_from_path, get_notebook_name, get_dir_creation_date\n",
+    "from cal_tools.tools import (gain_map_files, parse_runs, run_prop_seq_from_path, \n",
+    "                             get_notebook_name, get_dir_creation_date,\n",
+    "                             get_random_db_interface)\n",
     "from cal_tools.influx import InfluxLogger\n",
     "from cal_tools.enums import BadPixels\n",
     "from cal_tools.plotting import show_overview, plot_badpix_3d, create_constant_overview\n",
@@ -115,7 +117,9 @@
     "    loc = \"SCS_DET_DSSC1M-1\"\n",
     "    dinstance = \"DSSC1M1\"\n",
     "\n",
-    "print(\"Detector in use is {}\".format(loc))    "
+    "print(\"Detector in use is {}\".format(loc))    \n",
+    "\n",
+    "cal_db_interface = get_random_db_interface(cal_db_interface)"
    ]
   },
   {
diff --git a/notebooks/FastCCD/Characterize_Darks_NewDAQ_FastCCD_NBC_New_Common_Mode.ipynb b/notebooks/FastCCD/Characterize_Darks_NewDAQ_FastCCD_NBC_New_Common_Mode.ipynb
index 0d92477c9ecfdaa58d53421e6ca1a55026fd3984..9ad805c3271c41d02efb7097bdf3e0c0f2fde2b9 100644
--- a/notebooks/FastCCD/Characterize_Darks_NewDAQ_FastCCD_NBC_New_Common_Mode.ipynb
+++ b/notebooks/FastCCD/Characterize_Darks_NewDAQ_FastCCD_NBC_New_Common_Mode.ipynb
@@ -89,7 +89,7 @@
     "\n",
     "from iCalibrationDB import ConstantMetaData, Constants, Conditions, Detectors, Versions\n",
     "from iCalibrationDB.detectors import DetectorTypes\n",
-    "from cal_tools.tools import get_dir_creation_date, save_const_to_h5\n",
+    "from cal_tools.tools import get_dir_creation_date, save_const_to_h5, get_random_db_interface\n",
     "from cal_tools.enums import BadPixels\n",
     "from XFELDetAna import xfelpyanatools as xana\n",
     "from XFELDetAna import xfelpycaltools as xcal\n",
@@ -179,6 +179,7 @@
     "if use_dir_creation_date:\n",
     "    creation_time = get_dir_creation_date(in_folder, run)\n",
     "        \n",
+    "cal_db_interface = get_random_db_interface(cal_db_interface)\n",
     "print('Calibration database interface: {}'.format(cal_db_interface))\n",
     "print(\"Sending constants to the calibration database: {}\".format(db_output))\n",
     "print(\"HDF5 path to data: {}\".format(h5path))\n",
diff --git a/notebooks/Jungfrau/Jungfrau_dark_analysis_all_gains_burst_mode_NBC.ipynb b/notebooks/Jungfrau/Jungfrau_dark_analysis_all_gains_burst_mode_NBC.ipynb
index 00b7278b00fed735735ea05348f0d9058152d826..3c6e1a67dc42119862591e5bc5ad2a115a228dd0 100644
--- a/notebooks/Jungfrau/Jungfrau_dark_analysis_all_gains_burst_mode_NBC.ipynb
+++ b/notebooks/Jungfrau/Jungfrau_dark_analysis_all_gains_burst_mode_NBC.ipynb
@@ -65,7 +65,7 @@
     "from h5py import File as h5file\n",
     "\n",
     "from cal_tools.enums import BadPixels\n",
-    "from cal_tools.tools import get_dir_creation_date\n",
+    "from cal_tools.tools import get_dir_creation_date, get_random_db_interface\n",
     "from cal_tools.ana_tools import save_dict_to_hdf5\n",
     "from iCalibrationDB import ConstantMetaData, Constants, Conditions, Detectors, Versions\n",
     "\n",
@@ -96,6 +96,9 @@
     "if use_dir_creation_date:\n",
     "    creation_time = get_dir_creation_date(in_folder, run_high)\n",
     "    print(\"Using {} as creation time\".format(creation_time))\n",
+    "\n",
+    "cal_db_interface = get_random_db_interface(cal_db_interface)\n",
+    "print('Calibration database interface: {}'.format(cal_db_interface))\n",
     "    \n",
     "offset_abs_threshold = [offset_abs_threshold_low, offset_abs_threshold_high]\n",
     "\n",
diff --git a/notebooks/ePix/Characterize_Darks_ePix10K_NBC.ipynb b/notebooks/ePix/Characterize_Darks_ePix10K_NBC.ipynb
index b4f102b23dae2b7c38289d0451c7d9d27778b354..8d2b228d076c9219b679da8cffb1ea25ea12dab3 100644
--- a/notebooks/ePix/Characterize_Darks_ePix10K_NBC.ipynb
+++ b/notebooks/ePix/Characterize_Darks_ePix10K_NBC.ipynb
@@ -65,7 +65,7 @@
     "prettyPlotting = True\n",
     "from XFELDetAna.xfelreaders import ChunkReader\n",
     "from XFELDetAna.detectors.fastccd import readerh5 as fastccdreaderh5\n",
-    "from cal_tools.tools import get_dir_creation_date, save_const_to_h5\n",
+    "from cal_tools.tools import get_dir_creation_date, save_const_to_h5, get_random_db_interface\n",
     "\n",
     "from iCalibrationDB import (ConstantMetaData, Constants, Conditions, Detectors,\n",
     "                            Versions)\n",
@@ -75,7 +75,7 @@
     "import os\n",
     "import h5py\n",
     "import matplotlib.pyplot as plt\n",
-    "% matplotlib inline\n",
+    "%matplotlib inline\n",
     "\n",
     "h5path = h5path.format(instance)\n",
     "h5path_t = h5path_t.format(instance)\n",
@@ -262,6 +262,7 @@
    "source": [
     "# Save constants to DB\n",
     "dclass=\"ePix10K\"\n",
+    "cal_db_interface = get_random_db_interface(cal_db_interface)\n",
     "for const_name in constant_maps.keys():\n",
     "    metadata = ConstantMetaData()\n",
     "    det = getattr(Constants, dclass)\n",
diff --git a/notebooks/ePix/Characterize_Darks_ePix_NBC.ipynb b/notebooks/ePix/Characterize_Darks_ePix_NBC.ipynb
index d86b4cd12a05e9d37cd3ee352a69f3842b2adeec..7b75803a015502c85de9dc424715818bb4eced71 100644
--- a/notebooks/ePix/Characterize_Darks_ePix_NBC.ipynb
+++ b/notebooks/ePix/Characterize_Darks_ePix_NBC.ipynb
@@ -65,7 +65,7 @@
     "prettyPlotting = True\n",
     "from XFELDetAna.xfelreaders import ChunkReader\n",
     "from XFELDetAna.detectors.fastccd import readerh5 as fastccdreaderh5\n",
-    "from cal_tools.tools import get_dir_creation_date, save_const_to_h5\n",
+    "from cal_tools.tools import get_dir_creation_date, save_const_to_h5, get_random_db_interface\n",
     "\n",
     "from iCalibrationDB import (ConstantMetaData, Constants, Conditions, Detectors,\n",
     "                            Versions)\n",
@@ -255,6 +255,7 @@
    "source": [
     "# Save constants to DB\n",
     "dclass=\"ePix100\"\n",
+    "cal_db_interface = get_random_db_interface(cal_db_interface)\n",
     "for const_name in constant_maps.keys():\n",
     "    metadata = ConstantMetaData()\n",
     "    det = getattr(Constants, dclass)\n",
diff --git a/notebooks/ePix/Correction_ePix10K_NBC.ipynb b/notebooks/ePix/Correction_ePix10K_NBC.ipynb
index 1dbefa31bffb08879d303a1626fe6a928fa15814..f4a3517b2a8d0b4ca994dd8c77bb11558afbb6a0 100644
--- a/notebooks/ePix/Correction_ePix10K_NBC.ipynb
+++ b/notebooks/ePix/Correction_ePix10K_NBC.ipynb
@@ -117,14 +117,6 @@
     "if sequences[0] == -1:\n",
     "    sequences = None\n",
     "\n",
-    "if \"#\" in cal_db_interface:\n",
-    "    prot, serv, ran = cal_db_interface.split(\":\")\n",
-    "    r1, r2 = ran.split(\"#\")\n",
-    "    cal_db_interface = \":\".join(\n",
-    "        [prot, serv, str(np.random.randint(int(r1), int(r2)))])\n",
-    "    \n",
-    "print(\"Interface to Cal DB: \", cal_db_interface)\n",
-    "\n",
     "h5path = h5path.format(instance)\n",
     "h5path_t = h5path_t.format(instance)\n",
     "h5path_cntrl = h5path_cntrl.format(instance)"
@@ -209,8 +201,7 @@
     "ExecuteTime": {
      "end_time": "2018-12-06T15:54:24.088948Z",
      "start_time": "2018-12-06T15:54:24.059925Z"
-    },
-    "collapsed": true
+    }
    },
    "outputs": [],
    "source": [
@@ -332,9 +323,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {
-    "collapsed": true
-   },
+   "metadata": {},
    "outputs": [],
    "source": []
   },
@@ -366,8 +355,7 @@
     "ExecuteTime": {
      "end_time": "2018-12-06T16:08:51.886343Z",
      "start_time": "2018-12-06T16:08:51.842837Z"
-    },
-    "collapsed": true
+    }
    },
    "outputs": [],
    "source": [
@@ -395,8 +383,7 @@
     "ExecuteTime": {
      "end_time": "2018-12-06T16:08:53.042555Z",
      "start_time": "2018-12-06T16:08:53.034522Z"
-    },
-    "collapsed": true
+    }
    },
    "outputs": [],
    "source": [
@@ -407,9 +394,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {
-    "collapsed": true
-   },
+   "metadata": {},
    "outputs": [],
    "source": [
     "#************************Calculators************************#\n",
@@ -455,9 +440,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {
-    "collapsed": true
-   },
+   "metadata": {},
    "outputs": [],
    "source": [
     "cmCorrection.debug()\n",
@@ -473,8 +456,7 @@
     "ExecuteTime": {
      "end_time": "2018-12-06T16:08:53.551111Z",
      "start_time": "2018-12-06T16:08:53.531064Z"
-    },
-    "collapsed": true
+    }
    },
    "outputs": [],
    "source": [
@@ -507,8 +489,7 @@
     "ExecuteTime": {
      "end_time": "2018-12-06T16:10:55.917179Z",
      "start_time": "2018-12-06T16:09:01.603633Z"
-    },
-    "collapsed": true
+    }
    },
    "outputs": [],
    "source": [
@@ -683,9 +664,7 @@
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {
-    "collapsed": true
-   },
+   "metadata": {},
    "outputs": [],
    "source": []
   }
diff --git a/notebooks/ePix/Correction_ePix_NBC.ipynb b/notebooks/ePix/Correction_ePix_NBC.ipynb
index ec4a20eb7bc1d21c23acbe4994c3dbca5fab0e05..9a5c64e12908fdca59172357baeca7749c542a99 100644
--- a/notebooks/ePix/Correction_ePix_NBC.ipynb
+++ b/notebooks/ePix/Correction_ePix_NBC.ipynb
@@ -120,14 +120,6 @@
     "if sequences[0] == -1:\n",
     "    sequences = None\n",
     "\n",
-    "if \"#\" in cal_db_interface:\n",
-    "    prot, serv, ran = cal_db_interface.split(\":\")\n",
-    "    r1, r2 = ran.split(\"#\")\n",
-    "    cal_db_interface = \":\".join(\n",
-    "        [prot, serv, str(np.random.randint(int(r1), int(r2)))])\n",
-    "    \n",
-    "print(\"Interface to Cal DB: \", cal_db_interface)\n",
-    "\n",
     "h5path = h5path.format(instance)\n",
     "h5path_t = h5path_t.format(instance)\n",
     "h5path_cntrl = h5path_cntrl.format(instance)\n",
diff --git a/notebooks/pnCCD/Characterize_pnCCD_Dark_NBC.ipynb b/notebooks/pnCCD/Characterize_pnCCD_Dark_NBC.ipynb
index 77af078b9ae981a516f3dc3d6f4b64a15f057e22..124039ed8ae4d1a2949260a6c29398fae854c451 100644
--- a/notebooks/pnCCD/Characterize_pnCCD_Dark_NBC.ipynb
+++ b/notebooks/pnCCD/Characterize_pnCCD_Dark_NBC.ipynb
@@ -86,7 +86,7 @@
     "prettyPlotting=True\n",
     "from XFELDetAna.xfelreaders import ChunkReader\n",
     "from XFELDetAna.detectors.fastccd import readerh5 as fastccdreaderh5\n",
-    "from cal_tools.tools import get_dir_creation_date, save_const_to_h5\n",
+    "from cal_tools.tools import get_dir_creation_date, save_const_to_h5, get_random_db_interface\n",
     "from cal_tools.enums import BadPixels"
    ]
   },
@@ -157,6 +157,7 @@
     "if use_dir_creation_date:\n",
     "    creation_time = get_dir_creation_date(in_folder, run)\n",
     "    \n",
+    "cal_db_interface = get_random_db_interface(cal_db_interface)\n",
     "print('Calibration database interface: {}'.format(cal_db_interface))\n",
     "print(\"Sending constants to the calibration database: {}\".format(db_output))\n",
     "print(\"HDF5 path to data: {}\".format(h5path))\n",
diff --git a/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb b/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb
index 66628bcb80ba422a243f85727193b56c891733e1..1031c988f38aa63655041150a0c747e6df8c464c 100644
--- a/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb
+++ b/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb
@@ -706,40 +706,6 @@
     "            print(\"Couldn't calibrate data in {}: {}\".format(f, e))\n"
    ]
   },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "## Common mode statistics ##\n",
-    "\n",
-    "Common mode statistics of at most the first 500 frames. Frames increase upwards on the y-axis, columns in the image are on the x-axis. The four quadrants are shown individually-"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "cmStats = cmCorrection.get()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {
-    "scrolled": false
-   },
-   "outputs": [],
-   "source": [
-    "for i in range(0, cmStats.shape[0]):\n",
-    "    cmStatConcat = cmStats[i, :, :500]\n",
-    "    fig = xana.heatmapPlot(cmStatConcat.T, figsize=(8,14), lut_label=\"Common mode (ADU)\",\n",
-    "                           y_label = \"frame\",\n",
-    "                           x_label = \"column\",\n",
-    "                           vmin=-5000, vmax=5000)"
-   ]
-  },
   {
    "cell_type": "code",
    "execution_count": null,