diff --git a/scheduler/OStoreDB/OStoreDB.cpp b/scheduler/OStoreDB/OStoreDB.cpp
index 6d6f01a3e88d7ea271cb0fa54a7e3e7aee03215f..a2d6c3cd0f81a5bd51566f0c8ab0c463dfdf67c3 100644
--- a/scheduler/OStoreDB/OStoreDB.cpp
+++ b/scheduler/OStoreDB/OStoreDB.cpp
@@ -19,7 +19,6 @@
 #include "OStoreDB.hpp"
 #include "MemQueues.hpp"
 #include "common/dataStructures/SecurityIdentity.hpp"
-#include "objectstore/RootEntry.hpp"
 #include "objectstore/ArchiveQueue.hpp"
 #include "objectstore/RetrieveQueue.hpp"
 #include "objectstore/DriveRegister.hpp"
@@ -506,16 +505,27 @@ OStoreDB::ArchiveToFileRequestCancelation::~ArchiveToFileRequestCancelation() {
   }
 }
 
+//------------------------------------------------------------------------------
+// OStoreDB::getArchiveQueues()
+//------------------------------------------------------------------------------
+std::list<objectstore::RootEntry::ArchiveQueueDump> OStoreDB::getArchiveQueues() const {
+   objectstore::RootEntry re(m_objectStore);
+   objectstore::ScopedSharedLock rel(re);
+   re.fetch();
+   auto tpl = re.dumpArchiveQueues();
+   rel.release();
+
+   return tpl;
+}
+
 //------------------------------------------------------------------------------
 // OStoreDB::getArchiveJobs()
 //------------------------------------------------------------------------------
 std::list<cta::common::dataStructures::ArchiveJob>
   OStoreDB::getArchiveJobs(const std::string& tapePoolName) const {
-  objectstore::RootEntry re(m_objectStore);
-  objectstore::ScopedSharedLock rel(re);
-  re.fetch();
-  auto tpl = re.dumpArchiveQueues();
-  rel.release();
+
+  auto tpl = getArchiveQueues();
+
   for (auto & tpp:tpl) {
     if (tpp.tapePool != tapePoolName) continue;
     std::list<cta::common::dataStructures::ArchiveJob> ret;
@@ -566,11 +576,9 @@ std::list<cta::common::dataStructures::ArchiveJob>
 //------------------------------------------------------------------------------
 std::map<std::string, std::list<common::dataStructures::ArchiveJob> >
   OStoreDB::getArchiveJobs() const {
-  objectstore::RootEntry re(m_objectStore);
-  objectstore::ScopedSharedLock rel(re);
-  re.fetch();
-  auto tpl = re.dumpArchiveQueues();
-  rel.release();
+
+  auto tpl = getArchiveQueues();
+
   std::map<std::string, std::list<common::dataStructures::ArchiveJob> > ret;
   for (auto & tpp:tpl) {
     objectstore::ArchiveQueue osaq(tpp.address, m_objectStore);
diff --git a/scheduler/OStoreDB/OStoreDB.hpp b/scheduler/OStoreDB/OStoreDB.hpp
index 14b71be42b8357a64a5e22409b8212130d2c333e..965f8c84bf73a0bb08eac9fbb9d6ac84bf1896a9 100644
--- a/scheduler/OStoreDB/OStoreDB.hpp
+++ b/scheduler/OStoreDB/OStoreDB.hpp
@@ -26,6 +26,7 @@
 #include "objectstore/ArchiveRequest.hpp"
 #include "objectstore/DriveRegister.hpp"
 #include "objectstore/RetrieveRequest.hpp"
+#include "objectstore/RootEntry.hpp"
 #include "objectstore/SchedulerGlobalLock.hpp"
 #include "catalogue/Catalogue.hpp"
 #include "common/log/Logger.hpp"
@@ -280,6 +281,9 @@ public:
    * information.
    */
 private:
+  /** Returns the current list of archive queues */
+  std::list<objectstore::RootEntry::ArchiveQueueDump> getArchiveQueues() const;
+
   /** Collection of smaller scale parts of reportDriveStatus */
   struct ReportDriveStatusInputs {
     common::dataStructures::DriveStatus status;