From bd8387202fccaf90dcdd706b52bc56e58e296120 Mon Sep 17 00:00:00 2001 From: david hill Date: Mon, 9 Apr 2018 08:55:45 -0500 Subject: [PATCH 1/2] MCOL-912 - added code to restart dbrm/ddml process when enable module is done --- procmgr/processmanager.cpp | 19 +++++++++++++++++-- procmgr/processmanager.h | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/procmgr/processmanager.cpp b/procmgr/processmanager.cpp index fdb3f76b1..2172b6153 100755 --- a/procmgr/processmanager.cpp +++ b/procmgr/processmanager.cpp @@ -3385,12 +3385,12 @@ int ProcessManager::disableModule(string target, bool manualFlag) * purpose: recyle process, generally after some disable module is run * ******************************************************************************************/ -void ProcessManager::recycleProcess(string module) +void ProcessManager::recycleProcess(string module, bool enableModule) { Oam oam; ModuleConfig moduleconfig; - log.writeLog(__LINE__, "recycleProcess request after module was disabled: " + module, LOG_TYPE_DEBUG); + log.writeLog(__LINE__, "recycleProcess request after module statsu update: " + module, LOG_TYPE_DEBUG); string moduleType = module.substr(0,MAX_MODULE_TYPE_SIZE); @@ -3399,11 +3399,23 @@ void ProcessManager::recycleProcess(string module) oam.getSystemConfig("PrimaryUMModuleName", PrimaryUMModuleName); } catch(...) {} + + // restart DMLProc and return if enable module is being done + if (enableModule) + { + //recycle DBRM processes in all cases + restartProcessType("DBRMControllerNode"); + restartProcessType("DBRMWorkerNode"); + + restartProcessType("DMLProc"); + return; + } //recycle DBRM processes in all cases restartProcessType("DBRMControllerNode", module); restartProcessType("DBRMWorkerNode"); + // only recycle dmlproc, if down/up module is non-parent UM if ( ( moduleType == "um" ) && ( PrimaryUMModuleName != module) ) @@ -3483,6 +3495,9 @@ int ProcessManager::enableModule(string target, int state) if ( newStandbyModule == target) setStandbyModule(newStandbyModule); + //set recycle process + recycleProcess(target); + log.writeLog(__LINE__, "enableModule request for " + target + " completed", LOG_TYPE_DEBUG); return API_SUCCESS; diff --git a/procmgr/processmanager.h b/procmgr/processmanager.h index d60a9eaf2..a9ba826eb 100644 --- a/procmgr/processmanager.h +++ b/procmgr/processmanager.h @@ -302,7 +302,7 @@ public: /** *@brief recycle Processes */ - void recycleProcess(std::string module); + void recycleProcess(std::string module, bool enableModule = false); /** *@brief Enable a specified module From afb8e4706d58fffbae0631add8c90cf21343d121 Mon Sep 17 00:00:00 2001 From: david hill Date: Mon, 9 Apr 2018 11:35:37 -0500 Subject: [PATCH 2/2] MCOL-912 - fix spelling error --- procmgr/processmanager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/procmgr/processmanager.cpp b/procmgr/processmanager.cpp index 2172b6153..6db1a1660 100755 --- a/procmgr/processmanager.cpp +++ b/procmgr/processmanager.cpp @@ -3390,7 +3390,7 @@ void ProcessManager::recycleProcess(string module, bool enableModule) Oam oam; ModuleConfig moduleconfig; - log.writeLog(__LINE__, "recycleProcess request after module statsu update: " + module, LOG_TYPE_DEBUG); + log.writeLog(__LINE__, "recycleProcess request after module status update: " + module, LOG_TYPE_DEBUG); string moduleType = module.substr(0,MAX_MODULE_TYPE_SIZE); @@ -3400,7 +3400,7 @@ void ProcessManager::recycleProcess(string module, bool enableModule) } catch(...) {} - // restart DMLProc and return if enable module is being done + // restart DBRM Process and DMLProc and return if enable module is being done if (enableModule) { //recycle DBRM processes in all cases