diff --git a/src/DBManager.cpp b/src/DBManager.cpp
index c5bfee7c2229e23eb1daacb039f4aa50082e4370..febb5d519ded26cb92f6e716ce8cd6aed90637d8 100644
--- a/src/DBManager.cpp
+++ b/src/DBManager.cpp
@@ -5,6 +5,8 @@
 #include <soci/mysql/soci-mysql.h>
 #include <soci/use.h>
 
+#include <mysql.h>
+
 namespace MetadataExporter_ns
 {
 
@@ -62,7 +64,18 @@ void DBManager::connect() throw(soci::soci_error)
     #endif
 
     for(unsigned int i=0; i<connectionNumber; ++i)
+    {
         m_connectionPool_sp->at(i).open(soci::mysql, connection.str());
+
+        soci::mysql_session_backend* backend =
+            static_cast<soci::mysql_session_backend*>(
+            m_connectionPool_sp->at(i).get_backend());
+
+        MYSQL* mysql = backend->conn_;
+
+        bool reconnect = true;
+        mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);
+    }
 }
 
 //==============================================================================
diff --git a/src/Server.cpp b/src/Server.cpp
index ea6c9569c6db873e7bc3d7989bebaaa1e99b79c4..3c06d7d55ae95d2cf0839a17a8beba9d9c2188aa 100644
--- a/src/Server.cpp
+++ b/src/Server.cpp
@@ -30,7 +30,7 @@ Server::Server(Tango::DeviceImpl* deviceImpl_p, Configuration::SP configuration_
 }
 
 //==============================================================================
-//      Server::Server()
+//      Server::~Server()
 //==============================================================================
 Server::~Server()
 {