From c0786b1dd04da0a83783a257b6966054b96ee602 Mon Sep 17 00:00:00 2001
From: Marco De Marco <demarco@oats.inaf.it>
Date: Tue, 28 Jan 2014 09:52:27 +0100
Subject: [PATCH] Mysql server is gone away fix

---
 src/DBManager.cpp | 13 +++++++++++++
 src/Server.cpp    |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/DBManager.cpp b/src/DBManager.cpp
index c5bfee7..febb5d5 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 ea6c956..3c06d7d 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()
 {
-- 
GitLab