From 1fe92308ac9e2d07653c6c1aa6b0f53d965197c9 Mon Sep 17 00:00:00 2001 From: Omar Ramadan Date: Tue, 30 Jun 2015 20:09:41 -0700 Subject: [PATCH] This adds a bit of buffer in case JSONDB fails to connect to sqlite3 --- JSONDB/JSONDB.cpp | 14 ++++++++++---- JSONDB/JSONDB.h | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) mode change 100644 => 100755 JSONDB/JSONDB.cpp mode change 100644 => 100755 JSONDB/JSONDB.h diff --git a/JSONDB/JSONDB.cpp b/JSONDB/JSONDB.cpp old mode 100644 new mode 100755 index fc78311..20215f9 --- a/JSONDB/JSONDB.cpp +++ b/JSONDB/JSONDB.cpp @@ -241,10 +241,16 @@ JsonBox::Object JSONDB::query(JsonBox::Object request, unsigned retries) } // connect to database - if (!connect(dbPath)) { - response["code"] = JsonBox::Value(500); - response["data"] = JsonBox::Value("db connect failed"); - return response; + int retry_count = 0; + while(!connect(dbPath)) { + usleep(100); // sleep 0.1 second + retry_count++; + + if (retry_count > MAX_DB_CONNECT_ATTEMPTS) { + response["code"] = JsonBox::Value(503); + response["data"] = JsonBox::Value("db connect failed"); + return response; + } } // abstract sip_buddies and dialdata_tables into a single logical endpoint diff --git a/JSONDB/JSONDB.h b/JSONDB/JSONDB.h old mode 100644 new mode 100755 index 1b6e192..46a0cde --- a/JSONDB/JSONDB.h +++ b/JSONDB/JSONDB.h @@ -30,6 +30,7 @@ #include #include +#define MAX_DB_CONNECT_ATTEMPTS 10 class JSONDB {