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 {