void CheckStatPlan::startPlan (PlanItem &oPlan, char ** argv) { m_argv = argv; StatInterface::m_pPlan = &oPlan; //##置运行状态 bool bret = updateState (oPlan.m_iPlanID, "RUN", "<Message> 开始执行..."); if (!bret) { Log::log (0,"计划执行失败[Plan_ID=%d],因执行 updateState(RUN) 不成功", oPlan.m_iPlanID); return; } while (oPlan.m_iDebugFlag == 1) waitDebug (oPlan); //等待调试, 置B_Check_Stat_Plan.DEBUG_FLAG=0 后跳出循环 try { //置下一次运行时间 sleep (1); setNextRunTime (oPlan); if (oPlan.m_iAppType == 0) { switch (atoi (oPlan.m_sStatName)) { ///////////////////////HSS数据信息点300000///////////////////////////////////////// case 800001://2.2.1 数据接收平衡(AuditId=0001) { CheckStatInfo oReceBalance; oReceBalance.checkDataRecvBalance("0001",50,MIDL_FREG); break; } case 800002://2.2.2 数据加载平衡(AuditId=0002) { CheckStatInfo oReceBalance; oReceBalance.checkDataLoadBalance("0002",50,MIDL_FREG); break; } case 800003://2.2.3 数据入库平衡(AuditId=0003) { CheckStatInfo oReceBalance; oReceBalance.checkDataInputBalance("0003",50,MIDL_FREG); break; } case 800004://2.2.4 数据发布平衡(AuditId=0004) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkOutputBalance(); break; } case 800005://2.2.5 实例数变更(AuditId=0005) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkInstanceUpdate(); break; } case 800006://2.2.6 进程日志(AuditId=0006) { CheckStatInfo oCheckHSSStatInfo; oCheckHSSStatInfo.checkHSSAlertLog(); break; } case 800007://2.2.7 鉴权异常(AuditId=0008) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkAuthenticationError(); break; } ///////////////////////HSS信息点500000///////////////////////////////////////// //2.3.1 接收接口处理(AuditId=0100) case 502311:// 省内非计费域接口(AuditId=0101) 性能指标(AuditId=0101,type=40) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkNoBillingCap(); break; } case 502312:// 集团HSS接口(AuditId=0102) 性能指标 (AuditId=0102,type = 40) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkHssCap(); break; } //2.3.2 同步接口处理(AuditId=0200) case 502321:// OFCS接口(AuditId=0201) 性能指标(AuditId=0201,type=40) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkOfcsCap(); break; } case 502322:// OCS接口(AuditId=0202) 性能指标(AuditId=0202,type=40) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkOcsCap(); break; } //2.3.4 系统状态(AuditId=0400) case 502341://2.3.4.1 事件信息点(AuditId=0400,type=60) { CheckStatInfo oCheckHSSEventInfo; oCheckHSSEventInfo.checkOcsCap(); break; } case 502342://2.3.4.2 告警信息点(AuditId=0400,type=20) { CheckStatInfo oCheckHSSSystemCaution; oCheckHSSSystemCaution.checkHSSSystemCaution(); break; } ///////////////////////一下为计费信息点,对HSS无用处////////////////////// //数据信息点数据提取 case 100001: //##2.2.1 计费接收(AuditId=0001,Type=50) { CheckStatInfo oCheckStatInfo(MODULE_CHECK_NORMAL_FILE); oCheckStatInfo.checkNormalFile(); break; } case 100002: //##2.2.2 计费接收异常文件(AuditId=0002,Type=50) { CheckStatInfo oCheckStatInfo(MODULE_CHECK_ERR_FILE); oCheckStatInfo.checkErrFile(); break; } case 100003: //##2.2.3 预处理平衡(AuditId=0003,Type=50) { CheckStatInfo oCheckStatInfo(MODULE_CHECK_FILE_PREP_BALANCE); oCheckStatInfo.checkPrepBalance(); break; } case 100004: //##2.2.4 批价平衡(AuditId=0004,Type=50) { CheckStatInfo oCheckStatInfo(MODULE_CHECK_FILE_PRICING_BALANCE); oCheckStatInfo.checkPricingBalance(); break; } case 100005: //##2.2.5 入库平衡(AuditId=0005,Type=50) { CheckStatInfo oCheckStatInfo(MODULE_CHECK_FILE_INSTORE_BALANCE); oCheckStatInfo.checkInStoreBalance(); break; } case 100006: //##2.2.6 话单日志(AuditId=0006,Type=50) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkTicketLog(); break; } case 100007: //##2.2.7 IDEP文件传输(AuditId=0007,Type=50) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkTransLog(); break; } case 100008: //##2.2.8 累帐平衡(AuditId=0008,Type=50) { //CheckDailyAcctItemAggr oCheckItem; //oCheckItem.checkDailyAcctItemAggrNew(); break; } case 100009: //##2.2.9 日帐日志(AuditId=0009,Type=50) { break; } case 100010: //##2.2.10 月帐日志(AuditId=0010,Type=50) { //CheckDailyAcctItemAggr oCheckItem; //oCheckItem.checkMonthAcctItemAggrNew(); break; } case 100011: //##2.2.11 高额签到(AuditId=0011,Type=50) { //CheckStatInfo oCheckStatInfo; // oCheckStatInfo.checkSignHighFee(); break; } case 100012: //##2.2.12 省级高额(AuditId=0012,Type=50) { //CheckStatInfo oCheckStatInfo; //oCheckStatInfo.checkHighFeeServ(); /* char sValue1[3+1]={0}; ParamDefineMgr::getParam("HIGH_FEE_ALARM", "LOG_OR_DB", sValue1); int iValue=atoi(sValue1); if(iValue >= 2) oCheckStatInfo.checkHighFeeServ(); else oCheckStatInfo.checkHighFeeLog(); */ break; } case 100013: //##2.2.13 进程日志(AuditId=0013,Type=50) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkAlertLog(); /* char sValue1[3+1]={0}; ParamDefineMgr::getParam("INFO_DATA", "PROCESSLOG", sValue1); int iValue=atoi(sValue1); if(iValue == 1) oCheckStatInfo.checkAlertLog(); else oCheckStatInfo.checkProcessLog(); */ break; } case 100014: //##2.2.14 计费处理话单延迟(AuditId=0014,Type=50) { CheckStatInfo oCheckStatInfo(MODULE_CHECK_DELAY_FILE); oCheckStatInfo.checkDelayFile(); break; } case 100015: //##2.2.15 模块处理性能指标(AuditId=0015,Type=50) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.prepMouldeCapability(); oCheckStatInfo.pricingMouldeCapability(); oCheckStatInfo.checkMouldeCapabilityKpi(); break; } case 100016: //##2.2.16 系统处理损耗指标(AuditId=0016,Type=50) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkSystemLossKpi() ; break; } case 100017: //##JS_20101215_001(AuditId=0060 Type=50) { CheckStatInfo oCheckStatInfo; oCheckStatInfo.checkDayAcctFee(); break; } // 信息点数据提取 // 20000x 性能指标信息点 case 200001: //2.3.1.1 计费接收性能指标(AuditId=0100,Type=40) { Information oCheckInfor; oCheckInfor.checkGather() ; break; } case 200002: //2.3.2.1.1 预处理性能指标(AuditId=0201,Type=40) { Information oCheckInfor; //oCheckInfor.checkBalance(MODULE_PREP); //预处理告警中间数据生成 oCheckInfor.checkPerp() ; break; } case 200003: //2.3.2.2.1 批价性能指标(AuditId=0202,Type=40) { Information oCheckInfor; //oCheckInfor.checkBalance(MODULE_PRICING) ;//批价告警中间数据生成 oCheckInfor.checkPricing() ; break; } case 200004: //2.3.2.3.1 入库性能指标(AuditId=0203,Type=40) { Information oCheckInfor; //oCheckInfor.checkBalance(MODULE_INSTORE) ;//入库告警中间数据生成 oCheckInfor.checkIndb() ; break; } case 200005: //2.3.3.1.1 销账性能指标(AuditId=0301,Type=40) { CheckStatInfo oCheckAddItem ; oCheckAddItem.checkAcctCap("0301",40,MIDL_FREG) ; break; } case 200006: //2.3.3.2.1 累帐性能指标(AuditId=0302,Type=40) { CheckStatInfo oCheckAddItem ; oCheckAddItem.checkAddItem() ; break; } case 200007: //2.3.3.4.1 月帐性能指标(AuditId=0304,Type=40) { CheckStatInfo oCheckMonthCap ; oCheckMonthCap.checkMonthCap() ; break; } case 200008: //2.3.4.1.1 银行性能指标(AuditId=0401,Type=40) { CheckStatInfo oCheckAddItem ; oCheckAddItem.checkAcctCap("0401",40,MIDL_FREG) ; break; } case 200009: //2.3.4.2.1 充值卡性能指标(AuditId=0402,Type=40) { CheckStatInfo oCheckAddItem ; oCheckAddItem.checkAcctCap("0402",40,MIDL_FREG) ; break; } case 200010: //.3.3.5.1 欠费账龄性能指标(AuditId=0305,Type=40) { CheckStatInfo oCheckAddItem ; oCheckAddItem.checkAcctCap("0305",40,HIGH_FREG) ; break; } //20001x 告警指标信息点 case 200012: //2.3.2.1.2 ? { Information oCheckInfor; //oCheckInfor.checkBalance(MODULE_PREP); //?¤′|àí???ˉ?D??êy?Yéú3é oCheckInfor.checkPrepAlarm(); oCheckInfor.writePrepAlarm() ; break; } case 200013: //2.3.2.2.2 { Information oCheckInfor; //oCheckInfor.checkBalance(MODULE_PRICING) ;//?ú?????ˉ?D??êy?Yéú3é oCheckInfor.checkPricingAlarm(); oCheckInfor.writePricingAlarm() ; break; } case 200014: //2.3.2.3.2 { Information oCheckInfor; //oCheckInfor.checkBalance(MODULE_INSTORE) ;//è??a???ˉ?D??êy?Yéú3é oCheckInfor.checkIndbAlarm() ; oCheckInfor.writeIndbAlarm() ; break; } case 200015: //2.3.3.2.2 累帐告警指标(AuditId=0302,Type=20) { CheckStatInfo oCheckInfor; oCheckInfor.checkAddItemCaution() ; break; } case 200020: //2.3.3.5.2 欠费账龄告警指标(AuditId=0305,Type=20 { CheckStatInfo oCheckAddItem ; oCheckAddItem.checkAcctCaution("0305",20,HIGH_FREG) ; break; } /* 核心参数告警信息点*/ case 300001: //检查每日话单参数,话单总数,总时长,总流量 { CheckStatInfo oCheckInfo; oCheckInfo.checkParamBalance() ; break; } case 300002: //检查每日漫入漫出用户数 { CheckStatInfo oCheckInfo; oCheckInfo.checkRoamServs() ; break; } /* case 400001: //2.3.5.1 事件信息点(AuditId=0900,Type=60) { CheckStatInfo checkEventInfo; checkEventInfo.checkEventInfo() ; break; } */ case 400002: //2.3.4.3.1 产品配置指标(AuditId=0403,Type=30) { Information checkInfo; checkInfo.checkAllProductInfo() ; break; } case 400003: //2.3.4.4.1 商品配置指标(AuditId=0404,Type=30) { Information checkInfo; checkInfo.checkAllProductOfferInfo() ; break; } case 400004: //2.3.4.5.1 定价计划配置指标(AuditId=0405,Type=30) { Information checkInfo; checkInfo.checkAllPricingPlanInfo() ; break; } case 900001: //2.3.5.1 系统状态性能指标(AuditId=0900,Type=40) { CheckStatInfo oCheckAddItem ; oCheckAddItem.checkAcctCap("0900",40,MIDL_FREG) ; break; } case 900002: //2.3.5.2 系统状态事件信息点(AuditId=0900,Type=60) { CheckStatInfo checkEventInfo; checkEventInfo.checkHSSEventInfo() ; break; } case 900003: // 2.3.5.3 告警信息点(AuditId=0900,Type=20) { CheckStatInfo checkEventInfo; checkEventInfo.checkSystemCaution() ; break; } case 900004 :// 2.3.5.4 VC接口性能指标 (AuditId=0203,Type=40) { CheckStatInfo oCheckVCinter ; oCheckVCinter.checkVCCable("0203",40,MIDL_FREG) ; break; } case 900005 :// 2.3.5.5 查询接口性能 (AuditId=0300,Type=40) { CheckStatInfo oCheckSeekInter ; oCheckSeekInter.checkSeekInterCap("0300",40,MIDL_FREG); break; } case 900006 :// 2.3.5.5 查询接口告警 (AuditId=0300,Type=20) { CheckStatInfo oCheckSeekInter ; oCheckSeekInter.checkSeekInterAlarm("0300",20,MIDL_FREG); break; } default: { //## 置未知统计项ID 错误 updateState (oPlan.m_iPlanID, "NUL", "<Error> 未知统计项(stat_name),解析错误", true); return; } } } else if (oPlan.m_iAppType == 1) //## PLSQL块执行 { DEFINE_QUERY (qry); char sql[4096]; sprintf (sql,"%s", oPlan.m_sStatName); qry.setSQL (sql); qry.execute(); qry.commit (); } else { //## 未知应用类型(app_type) updateState (oPlan.m_iPlanID, "NUL", "<Error> 未知应用类型(app_type),解析错误", true); return; } } catch (TOCIException &e) { DB_LINK->rollback (); char sMsg[2048]; sprintf (sMsg, "<Error> %s \n %s", e.getErrMsg(), e.getErrSrc()); updateState (oPlan.m_iPlanID, "ERR", sMsg, true); return; } //# TException catch (TException &e) { DB_LINK->rollback (); char sMsg[2048]; sprintf (sMsg, "<Error> %s ", e.GetErrMsg()); updateState (oPlan.m_iPlanID, "ERR", sMsg, true); return; } catch (Exception &e) { DB_LINK->rollback (); char sMsg[2048]; sprintf (sMsg, "<Error> %s \n", e.descript()); updateState (oPlan.m_iPlanID, "ERR", sMsg, true); return; } //# Other Exception catch (...) { DB_LINK->rollback (); char sMsg[2048]; sprintf (sMsg, "<Error> 程序异常退出! \n"); updateState (oPlan.m_iPlanID, "ERR", sMsg, true); return; } updateState (oPlan.m_iPlanID, "END", "<Message> 执行成功!", true); }