You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-08 14:22:09 +03:00
MCOL-850
This commit is contained in:
2
VERSION
2
VERSION
@@ -1,4 +1,4 @@
|
|||||||
COLUMNSTORE_VERSION_MAJOR=1
|
COLUMNSTORE_VERSION_MAJOR=1
|
||||||
COLUMNSTORE_VERSION_MINOR=0
|
COLUMNSTORE_VERSION_MINOR=0
|
||||||
COLUMNSTORE_VERSION_PATCH=10
|
COLUMNSTORE_VERSION_PATCH=10
|
||||||
COLUMNSTORE_VERSION_RELEASE=1
|
COLUMNSTORE_VERSION_RELEASE=2
|
||||||
|
@@ -2536,25 +2536,48 @@ namespace oam
|
|||||||
|
|
||||||
Oam::getAlarmConfig(alarmid, name, returnValue);
|
Oam::getAlarmConfig(alarmid, name, returnValue);
|
||||||
|
|
||||||
// only allow user to change these levels
|
// only allow user to change these levels
|
||||||
if ( name != "Threshold" &&
|
if ( name != "Threshold" &&
|
||||||
name != "Occurrences" &&
|
name != "Occurrences" &&
|
||||||
name != "LastIssueTime" )
|
name != "LastIssueTime" )
|
||||||
exceptionControl("setAlarmConfig", API_READONLY_PARAMETER);
|
exceptionControl("setAlarmConfig", API_READONLY_PARAMETER);
|
||||||
|
|
||||||
|
string fileName = AlarmConfigFile;
|
||||||
|
|
||||||
|
int fd = open(fileName.c_str(), O_RDWR|O_CREAT, 0644);
|
||||||
|
|
||||||
|
// Aquire an exclusive lock
|
||||||
|
if (flock(fd,LOCK_EX) == -1) {
|
||||||
|
throw runtime_error ("Lock file error: " + fileName);
|
||||||
|
}
|
||||||
|
|
||||||
// write parameter to disk
|
// write parameter to disk
|
||||||
|
|
||||||
Config* alaConfig = Config::makeConfig(AlarmConfigFile.c_str());
|
Config* alaConfig = Config::makeConfig(AlarmConfigFile.c_str());
|
||||||
alaConfig->setConfig(Section, name, value);
|
alaConfig->setConfig(Section, name, value);
|
||||||
try
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
alaConfig->write();
|
||||||
|
}
|
||||||
|
catch(...)
|
||||||
|
{
|
||||||
|
// Release lock
|
||||||
|
if (flock(fd,LOCK_UN)==-1)
|
||||||
{
|
{
|
||||||
alaConfig->write();
|
throw runtime_error ("Release lock file error: " + fileName);
|
||||||
}
|
|
||||||
catch(...)
|
|
||||||
{
|
|
||||||
exceptionControl("setAlarmConfig", API_FAILURE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exceptionControl("setAlarmConfig", API_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Release lock
|
||||||
|
if (flock(fd,LOCK_UN)==-1)
|
||||||
|
{
|
||||||
|
throw runtime_error ("Release lock file error: " + fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
@@ -6967,7 +6990,7 @@ namespace oam
|
|||||||
|
|
||||||
//current amazon max dbroot id support = 190;
|
//current amazon max dbroot id support = 190;
|
||||||
string PMdeviceName = "/dev/sd";
|
string PMdeviceName = "/dev/sd";
|
||||||
string deviceLetter[] = {"g","h","i","j","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","end"};
|
string deviceLetter[] = {"g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","end"};
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
*
|
*
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#endif
|
#endif
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <sys/file.h>
|
||||||
|
|
||||||
#include "bytestream.h"
|
#include "bytestream.h"
|
||||||
#include "configcpp.h"
|
#include "configcpp.h"
|
||||||
|
@@ -333,26 +333,26 @@ void ServerMonitor::checkCPUAlarm(string alarmItem, ALARMS alarmID)
|
|||||||
|
|
||||||
switch (alarmID) {
|
switch (alarmID) {
|
||||||
case ALARM_NONE: // clear all alarms set if any found
|
case ALARM_NONE: // clear all alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, CPU_USAGE_HIGH);
|
clearAlarm(alarmItem, CPU_USAGE_HIGH);
|
||||||
if ( oam.checkActiveAlarm(CPU_USAGE_MED, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(CPU_USAGE_MED, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, CPU_USAGE_MED);
|
clearAlarm(alarmItem, CPU_USAGE_MED);
|
||||||
if ( oam.checkActiveAlarm(CPU_USAGE_LOW, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(CPU_USAGE_LOW, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, CPU_USAGE_LOW);
|
clearAlarm(alarmItem, CPU_USAGE_LOW);
|
||||||
break;
|
break;
|
||||||
case CPU_USAGE_LOW: // clear high and medium alarms set if any found
|
case CPU_USAGE_LOW: // clear high and medium alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, CPU_USAGE_HIGH);
|
clearAlarm(alarmItem, CPU_USAGE_HIGH);
|
||||||
if ( oam.checkActiveAlarm(CPU_USAGE_MED, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(CPU_USAGE_MED, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, CPU_USAGE_MED);
|
clearAlarm(alarmItem, CPU_USAGE_MED);
|
||||||
break;
|
break;
|
||||||
case CPU_USAGE_MED: // clear high alarms set if any found
|
case CPU_USAGE_MED: // clear high alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, CPU_USAGE_HIGH);
|
clearAlarm(alarmItem, CPU_USAGE_HIGH);
|
||||||
break;
|
break;
|
||||||
|
@@ -645,26 +645,26 @@ void ServerMonitor::checkDiskAlarm(string alarmItem, ALARMS alarmID)
|
|||||||
|
|
||||||
switch (alarmID) {
|
switch (alarmID) {
|
||||||
case ALARM_NONE: // clear all alarms set if any found
|
case ALARM_NONE: // clear all alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, DISK_USAGE_HIGH);
|
clearAlarm(alarmItem, DISK_USAGE_HIGH);
|
||||||
if ( oam.checkActiveAlarm(DISK_USAGE_MED, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(DISK_USAGE_MED, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, DISK_USAGE_MED);
|
clearAlarm(alarmItem, DISK_USAGE_MED);
|
||||||
if ( oam.checkActiveAlarm(DISK_USAGE_LOW, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(DISK_USAGE_LOW, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, DISK_USAGE_LOW);
|
clearAlarm(alarmItem, DISK_USAGE_LOW);
|
||||||
break;
|
break;
|
||||||
case DISK_USAGE_LOW: // clear high and medium alarms set if any found
|
case DISK_USAGE_LOW: // clear high and medium alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, DISK_USAGE_HIGH);
|
clearAlarm(alarmItem, DISK_USAGE_HIGH);
|
||||||
if ( oam.checkActiveAlarm(DISK_USAGE_MED, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(DISK_USAGE_MED, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, DISK_USAGE_MED);
|
clearAlarm(alarmItem, DISK_USAGE_MED);
|
||||||
break;
|
break;
|
||||||
case DISK_USAGE_MED: // clear high alarms set if any found
|
case DISK_USAGE_MED: // clear high alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, DISK_USAGE_HIGH);
|
clearAlarm(alarmItem, DISK_USAGE_HIGH);
|
||||||
break;
|
break;
|
||||||
|
@@ -291,3 +291,27 @@ int main (int argc, char** argv)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// common functions
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check Active alarms
|
||||||
|
//
|
||||||
|
// Use a mutex to limit the number of calls
|
||||||
|
//
|
||||||
|
|
||||||
|
pthread_mutex_t THREAD_LOCK;
|
||||||
|
|
||||||
|
|
||||||
|
bool ServerMonitor::checkActiveAlarm(const int alarmid, const std::string moduleName, const std::string deviceName)
|
||||||
|
{
|
||||||
|
Oam oam;
|
||||||
|
|
||||||
|
pthread_mutex_lock(&THREAD_LOCK);
|
||||||
|
|
||||||
|
bool status = oam.checkActiveAlarm(alarmid, moduleName, deviceName);
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&THREAD_LOCK);
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -289,26 +289,26 @@ void ServerMonitor::checkMemoryAlarm(string alarmItem, ALARMS alarmID)
|
|||||||
|
|
||||||
switch (alarmID) {
|
switch (alarmID) {
|
||||||
case ALARM_NONE: // clear all alarms set if any found
|
case ALARM_NONE: // clear all alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, MEMORY_USAGE_HIGH);
|
clearAlarm(alarmItem, MEMORY_USAGE_HIGH);
|
||||||
if ( oam.checkActiveAlarm(MEMORY_USAGE_MED, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_MED, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, MEMORY_USAGE_MED);
|
clearAlarm(alarmItem, MEMORY_USAGE_MED);
|
||||||
if ( oam.checkActiveAlarm(MEMORY_USAGE_LOW, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_LOW, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, MEMORY_USAGE_LOW);
|
clearAlarm(alarmItem, MEMORY_USAGE_LOW);
|
||||||
break;
|
break;
|
||||||
case MEMORY_USAGE_LOW: // clear high and medium alarms set if any found
|
case MEMORY_USAGE_LOW: // clear high and medium alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, MEMORY_USAGE_HIGH);
|
clearAlarm(alarmItem, MEMORY_USAGE_HIGH);
|
||||||
if ( oam.checkActiveAlarm(MEMORY_USAGE_MED, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_MED, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, MEMORY_USAGE_MED);
|
clearAlarm(alarmItem, MEMORY_USAGE_MED);
|
||||||
break;
|
break;
|
||||||
case MEMORY_USAGE_MED: // clear high alarms set if any found
|
case MEMORY_USAGE_MED: // clear high alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, MEMORY_USAGE_HIGH);
|
clearAlarm(alarmItem, MEMORY_USAGE_HIGH);
|
||||||
break;
|
break;
|
||||||
@@ -342,26 +342,26 @@ void ServerMonitor::checkSwapAlarm(string alarmItem, ALARMS alarmID)
|
|||||||
|
|
||||||
switch (alarmID) {
|
switch (alarmID) {
|
||||||
case ALARM_NONE: // clear all alarms set if any found
|
case ALARM_NONE: // clear all alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, SWAP_USAGE_HIGH);
|
clearAlarm(alarmItem, SWAP_USAGE_HIGH);
|
||||||
if ( oam.checkActiveAlarm(SWAP_USAGE_MED, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_MED, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, SWAP_USAGE_MED);
|
clearAlarm(alarmItem, SWAP_USAGE_MED);
|
||||||
if ( oam.checkActiveAlarm(SWAP_USAGE_LOW, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_LOW, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, SWAP_USAGE_LOW);
|
clearAlarm(alarmItem, SWAP_USAGE_LOW);
|
||||||
break;
|
break;
|
||||||
case SWAP_USAGE_LOW: // clear high and medium alarms set if any found
|
case SWAP_USAGE_LOW: // clear high and medium alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, SWAP_USAGE_HIGH);
|
clearAlarm(alarmItem, SWAP_USAGE_HIGH);
|
||||||
if ( oam.checkActiveAlarm(SWAP_USAGE_MED, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_MED, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, SWAP_USAGE_MED);
|
clearAlarm(alarmItem, SWAP_USAGE_MED);
|
||||||
break;
|
break;
|
||||||
case SWAP_USAGE_MED: // clear high alarms set if any found
|
case SWAP_USAGE_MED: // clear high alarms set if any found
|
||||||
if ( oam.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) )
|
if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) )
|
||||||
// alarm set, clear it
|
// alarm set, clear it
|
||||||
clearAlarm(alarmItem, SWAP_USAGE_HIGH);
|
clearAlarm(alarmItem, SWAP_USAGE_HIGH);
|
||||||
break;
|
break;
|
||||||
|
@@ -235,6 +235,12 @@ public:
|
|||||||
* @brief db health check
|
* @brief db health check
|
||||||
*/
|
*/
|
||||||
int healthCheck(bool action = true);
|
int healthCheck(bool action = true);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Check Active Alarm
|
||||||
|
*/
|
||||||
|
bool checkActiveAlarm(const int alarmid, const std::string moduleName, const std::string deviceName);
|
||||||
|
|
||||||
|
|
||||||
}; // end of class
|
}; // end of class
|
||||||
|
|
||||||
|
@@ -59,6 +59,7 @@ string localHostName;
|
|||||||
string PMwithUM = "n";
|
string PMwithUM = "n";
|
||||||
string MySQLRep = "n";
|
string MySQLRep = "n";
|
||||||
string DBRootStorageType = "internal";
|
string DBRootStorageType = "internal";
|
||||||
|
int requestCount;
|
||||||
|
|
||||||
// pushing the ACTIVE_ALARMS_FILE to all nodes every 10 seconds.
|
// pushing the ACTIVE_ALARMS_FILE to all nodes every 10 seconds.
|
||||||
const int ACTIVE_ALARMS_PUSHING_INTERVAL = 10;
|
const int ACTIVE_ALARMS_PUSHING_INTERVAL = 10;
|
||||||
@@ -421,10 +422,21 @@ static void messageThread(Configuration config)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Number of Max requests
|
||||||
|
// int ProcessManagerRequest = 10;
|
||||||
|
|
||||||
|
// try {
|
||||||
|
// oam.getSystemConfig("ProcessManagerRequest", ProcessManagerRequest);
|
||||||
|
// }
|
||||||
|
// catch (...) {
|
||||||
|
// ProcessManagerRequest = 10;
|
||||||
|
// }
|
||||||
|
|
||||||
//
|
//
|
||||||
//waiting for request
|
//waiting for request
|
||||||
//
|
//
|
||||||
IOSocket fIos;
|
IOSocket fIos;
|
||||||
|
requestCount = 0;
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@@ -446,23 +458,33 @@ static void messageThread(Configuration config)
|
|||||||
catch(...)
|
catch(...)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
requestCount++;
|
||||||
|
//log.writeLog(__LINE__, "requestCount = " + oam.itoa(requestCount), LOG_TYPE_ERROR);
|
||||||
|
|
||||||
|
// loop until count decreases
|
||||||
|
//while(true)
|
||||||
|
//{
|
||||||
|
// if ( requestCount < ProcessManagerRequest )
|
||||||
|
// break;
|
||||||
|
// log.writeLog(__LINE__, "in loop", LOG_TYPE_ERROR);
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (exception& ex)
|
catch (exception& ex)
|
||||||
{
|
{
|
||||||
string error = ex.what();
|
string error = ex.what();
|
||||||
log.writeLog(__LINE__, "EXCEPTION ERROR on MessageQueueServer for ProcMgr:" + error, LOG_TYPE_ERROR);
|
log.writeLog(__LINE__, "EXCEPTION ERROR on MessageQueueServer for ProcMgr:" + error, LOG_TYPE_ERROR);
|
||||||
|
|
||||||
// takes 2 - 4 minites to free sockets, sleep and retry
|
// takes 2 - 4 minites to free sockets, sleep and retry
|
||||||
sleep(60);
|
sleep(60);
|
||||||
}
|
}
|
||||||
catch(...)
|
catch(...)
|
||||||
{
|
{
|
||||||
log.writeLog(__LINE__, "EXCEPTION ERROR on MessageQueueServer for ProcMgr: Caught unknown exception!", LOG_TYPE_ERROR);
|
log.writeLog(__LINE__, "EXCEPTION ERROR on MessageQueueServer for ProcMgr: Caught unknown exception!", LOG_TYPE_ERROR);
|
||||||
|
|
||||||
// takes 2 - 4 minites to free sockets, sleep and retry
|
// takes 2 - 4 minites to free sockets, sleep and retry
|
||||||
sleep(60);
|
sleep(60);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -56,6 +56,7 @@ extern string localHostName;
|
|||||||
extern string PMwithUM;
|
extern string PMwithUM;
|
||||||
extern string AmazonPMFailover;
|
extern string AmazonPMFailover;
|
||||||
extern string DBRootStorageType;
|
extern string DBRootStorageType;
|
||||||
|
extern int requestCount;
|
||||||
|
|
||||||
typedef map<string, int> moduleList;
|
typedef map<string, int> moduleList;
|
||||||
extern moduleList moduleInfoList;
|
extern moduleList moduleInfoList;
|
||||||
@@ -2987,12 +2988,19 @@ void processMSG(messageqcpp::IOSocket* cfIos)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
sleep(5);
|
// sleep(5);
|
||||||
|
|
||||||
|
// requestCount--;
|
||||||
|
// log.writeLog(__LINE__, "requestCount = " + oam.itoa(requestCount), LOG_TYPE_ERROR);
|
||||||
|
|
||||||
fIos.close();
|
fIos.close();
|
||||||
pthread_detach (ThreadId);
|
pthread_detach (ThreadId);
|
||||||
pthread_exit(0);
|
pthread_exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pthread_mutex_t ALARM_LOCK;
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
* @brief getAlarmData
|
* @brief getAlarmData
|
||||||
*
|
*
|
||||||
@@ -3003,6 +3011,9 @@ int ProcessManager::getAlarmData(messageqcpp::IOSocket fIos, int type, std::stri
|
|||||||
{
|
{
|
||||||
ByteStream msg;
|
ByteStream msg;
|
||||||
Oam oam;
|
Oam oam;
|
||||||
|
|
||||||
|
pthread_mutex_lock(&ALARM_LOCK);
|
||||||
|
|
||||||
int returnStatus = oam::API_SUCCESS;
|
int returnStatus = oam::API_SUCCESS;
|
||||||
|
|
||||||
AlarmList alarmList;
|
AlarmList alarmList;
|
||||||
@@ -3022,6 +3033,7 @@ int ProcessManager::getAlarmData(messageqcpp::IOSocket fIos, int type, std::stri
|
|||||||
}
|
}
|
||||||
catch(...) {}
|
catch(...) {}
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&ALARM_LOCK);
|
||||||
return oam::API_FAILURE;
|
return oam::API_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3041,6 +3053,7 @@ int ProcessManager::getAlarmData(messageqcpp::IOSocket fIos, int type, std::stri
|
|||||||
}
|
}
|
||||||
catch(...) {}
|
catch(...) {}
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&ALARM_LOCK);
|
||||||
return oam::API_FAILURE;
|
return oam::API_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3071,6 +3084,7 @@ int ProcessManager::getAlarmData(messageqcpp::IOSocket fIos, int type, std::stri
|
|||||||
}
|
}
|
||||||
catch(...) {}
|
catch(...) {}
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&ALARM_LOCK);
|
||||||
return returnStatus;
|
return returnStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6245,7 +6259,7 @@ void ProcessManager::saveBRM(bool skipSession, bool clearshm)
|
|||||||
if ( skipSession )
|
if ( skipSession )
|
||||||
skip = "-s";
|
skip = "-s";
|
||||||
|
|
||||||
string cmd = startup::StartUp::installDir() + "/bin/reset_locks " + skip + " > + logdir + /reset_locks.log1 2>&1";
|
string cmd = startup::StartUp::installDir() + "/bin/reset_locks " + skip + " > " + logdir + "/reset_locks.log1 2>&1";
|
||||||
int rtnCode = system(cmd.c_str());
|
int rtnCode = system(cmd.c_str());
|
||||||
log.writeLog(__LINE__, "Ran reset_locks", LOG_TYPE_DEBUG);
|
log.writeLog(__LINE__, "Ran reset_locks", LOG_TYPE_DEBUG);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user