CDSProcessF.cpp 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSProcessF.h"
  4. #include "CDSCtlrF.h"
  5. #include "VMSCommLibF.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. TCDSProcess::TCDSProcess()
  9. {
  10. }
  11. //---------------------------------------------------------------------------
  12. TCDSProcess::~TCDSProcess()
  13. {
  14. }
  15. //---------------------------------------------------------------------------
  16. //---------------------------------------------------------------------------
  17. TCDSProcessManager *CDSProcessManager = NULL;
  18. //---------------------------------------------------------------------------
  19. /*
  20. * Process Manager
  21. */
  22. TCDSProcessManager::TCDSProcessManager()
  23. {
  24. FUnitStts5Min = -1;
  25. }
  26. //---------------------------------------------------------------------------
  27. TCDSProcessManager::~TCDSProcessManager()
  28. {
  29. }
  30. //---------------------------------------------------------------------------
  31. int TCDSProcessManager::LoadUnitInfo(TADOConnection *ADbConn)
  32. {
  33. bool bResult = true;
  34. String sQry;
  35. TADOQuery *pADO = NULL;
  36. sQry = "SELECT A.SYST_ID , \r\n"
  37. " A.SYST_TYPE, \r\n"
  38. " A.SYST_NMBR, \r\n"
  39. " A.SYST_NM , \r\n"
  40. " A.SYST_IP_1, \r\n"
  41. " A.SYST_IP_2, \r\n"
  42. " A.PRGM_PORT, \r\n"
  43. " A.HOST_NM , \r\n"
  44. " A.OS_NM , \r\n"
  45. " A.STTS_DSPL_YN, \r\n"
  46. " A.DEL_YN \r\n"
  47. " FROM TB_UNIT_SYST A \r\n"
  48. " WHERE A.DEL_YN = 'N' \r\n";
  49. try
  50. {
  51. FLists.Lock();
  52. FLists.RemoveAll();
  53. try
  54. {
  55. pADO = new TADOQuery(NULL);
  56. pADO->Connection = ADbConn;
  57. SQLText(pADO, sQry, true);
  58. SQLOpen(pADO);
  59. for( ; !pADO->Eof; pADO->Next())
  60. {
  61. TCDSProcess *pObj = new TCDSProcess();
  62. pObj->SYST_ID = pADO->FieldByName("SYST_ID")->AsString.Trim();
  63. pObj->SYST_TYPE = pADO->FieldByName("SYST_TYPE")->AsString.Trim();
  64. pObj->SYST_NMBR = pADO->FieldByName("SYST_NMBR")->AsString.Trim();
  65. pObj->SYST_NM = pADO->FieldByName("SYST_NM")->AsString.Trim();
  66. pObj->SYST_IP_1 = pADO->FieldByName("SYST_IP_1")->AsString.Trim();
  67. pObj->SYST_IP_2 = pADO->FieldByName("SYST_IP_2")->AsString.Trim();
  68. pObj->PRGM_PORT = pADO->FieldByName("PRGM_PORT")->AsString.Trim();
  69. pObj->HOST_NM = pADO->FieldByName("HOST_NM")->AsString.Trim();
  70. pObj->OS_NM = pADO->FieldByName("OS_NM")->AsString.Trim();
  71. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString.Trim();
  72. pObj->STTS_DSPL_YN = pADO->FieldByName("STTS_DSPL_YN")->AsString.Trim();
  73. FLists.Push(pObj->SYST_ID, pObj);
  74. }
  75. }
  76. catch(EDatabaseError &E)
  77. {
  78. DBERROR(String(E.ClassName()), E.Message, sQry);
  79. return -1;
  80. }
  81. catch(Exception &e)
  82. {
  83. DBERROR(String(e.ClassName()), e.Message, sQry);
  84. return -1;
  85. }
  86. }
  87. __finally
  88. {
  89. FLists.UnLock();
  90. SQLFree(pADO);
  91. }
  92. return FLists.Size();
  93. }
  94. //---------------------------------------------------------------------------
  95. int TCDSProcessManager::SaveUnitStts(TADOConnection *ADbConn)
  96. {
  97. int nSelCnt = 0;
  98. AnsiString sQry;
  99. TADOQuery *pADO = NULL;
  100. DDBSTART;
  101. // 1분주기 상태정보 업데이트, 5분마다 이력정보를 입력한다.
  102. bool bSaveHist = false;
  103. int nCurrMin = StrToInt(Now().FormatString("nn"));
  104. if ((nCurrMin % 5) == 0) //매 5분마다 무조건 입력
  105. {
  106. if (FUnitStts5Min != nCurrMin)
  107. {
  108. bSaveHist = true;
  109. FUnitStts5Min = nCurrMin;
  110. }
  111. }
  112. String UPDT_DT = Now().FormatString("yyyymmddhhnnss");
  113. sQry = "UPDATE TB_UNIT_SYST_STTS \r\n"
  114. " SET UPDT_DT = :p03, \r\n"
  115. " SYST_STTS_CD = :p02 \r\n"
  116. " WHERE SYST_ID = :p01 \r\n";
  117. AnsiString SYST_ID = g_AppCfg.sSystemId;
  118. AnsiString SYST_STTS_CD = "SPS1";
  119. try
  120. {
  121. try
  122. {
  123. pADO = new TADOQuery(NULL);
  124. pADO->Connection = ADbConn;
  125. SQLText(pADO, sQry, false);
  126. if (g_SysInfo->RunSts == state_error)
  127. {
  128. SYST_STTS_CD = "SPS3";
  129. }
  130. SQLBind(pADO, "p01", SYST_ID);
  131. SQLBind(pADO, "p02", SYST_STTS_CD);
  132. SQLBind(pADO, "p03", UPDT_DT);
  133. nSelCnt = SQLExec(pADO);
  134. if (bSaveHist)
  135. {
  136. sQry = "INSERT INTO TB_UNIT_SYST_STTS_HS(CRTN_DT, SYST_ID, SYST_STTS_CD) \r\n"
  137. " VALUES(:p03, :p01, :p02) \r\n";
  138. SQLText(pADO, sQry, false);
  139. SQLBind(pADO, "p01", SYST_ID);
  140. SQLBind(pADO, "p02", SYST_STTS_CD);
  141. SQLBind(pADO, "p03", UPDT_DT);
  142. SQLExec(pADO);
  143. }
  144. }
  145. catch(EDatabaseError &E)
  146. {
  147. DBERROR(String(E.ClassName()), E.Message, sQry);
  148. return -1;
  149. }
  150. catch(Exception &e)
  151. {
  152. DBERROR(String(e.ClassName()), e.Message, sQry);
  153. return -1;
  154. }
  155. }
  156. __finally
  157. {
  158. SQLFree(pADO);
  159. }
  160. MDEBUG("DCOM PROCESS_STTS, SYST_ID: %s, STTS_CD: %s", SYST_ID.c_str(), SYST_STTS_CD.c_str());
  161. INT_PG_STATE_RES PgState;
  162. memset(&PgState, 0x00, sizeof(PgState));
  163. PgState.Count = 1;
  164. PgState.Unit[0].Type = INT_ID_VMS_SERVER;
  165. PgState.Unit[0].DB = g_SysInfo->DbmSts;
  166. PgState.Unit[0].Comm = g_SysInfo->ComSts;
  167. PgState.Unit[0].Action = g_SysInfo->RunSts;
  168. CComm_CmmProcessStateNotify(&PgState);
  169. IDBSTOP(nSelCnt);
  170. return nSelCnt;
  171. }
  172. //---------------------------------------------------------------------------
  173. #if 0
  174. int TCDSProcessManager::SaveUnitSttsHs(TADOConnection *ADbConn)
  175. {
  176. int nSelCnt;
  177. AnsiString sQry;
  178. TADOQuery *pADO = NULL;
  179. DDBSTART;
  180. sQry = "INSERT INTO TB_UNIT_SYST_STTS_HS(CRTN_DT, SYST_ID, SYST_STTS_CD) \r\n"
  181. " VALUES(TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'), :p01, :p02) \r\n";
  182. AnsiString SYST_ID = g_AppCfg.sSystemId;
  183. AnsiString SYST_STTS_CD = "SPS1";
  184. try
  185. {
  186. try
  187. {
  188. pADO = new TADOQuery(NULL);
  189. pADO->Connection = ADbConn;
  190. SQLText(pADO, sQry, false);
  191. if (g_SysInfo->RunSts == state_error)
  192. {
  193. SYST_STTS_CD = "SPS3";
  194. }
  195. SQLBind(pADO, "p01", SYST_ID);
  196. SQLBind(pADO, "p02", SYST_STTS_CD);
  197. nSelCnt = SQLExec(pADO);
  198. }
  199. catch(EDatabaseError &E)
  200. {
  201. DBERROR(String(E.ClassName()), E.Message, sQry);
  202. return -1;
  203. }
  204. catch(Exception &e)
  205. {
  206. DBERROR(String(e.ClassName()), e.Message, sQry);
  207. return -1;
  208. }
  209. }
  210. __finally
  211. {
  212. SQLFree(pADO);
  213. }
  214. MDEBUG("DCOM PROCESS_STTS, SYST_ID: %s, STTS_CD: %s", SYST_ID.c_str(), SYST_STTS_CD.c_str());
  215. IDBSTOP(nSelCnt);
  216. return nSelCnt;
  217. }
  218. //---------------------------------------------------------------------------
  219. #endif