⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 standdb.pc

📁 UNIX环境下资源监控程序(包含对CPUMEMDISKIOPS等资源的监控)
💻 PC
字号:
#include  "standdb.h"EXEC SQL DECLARE db_name DATABASE;EXEC SQL INCLUDE sqlca;/* huangliping remark*//** 函数介绍:连接数据库* 输入参数:usrname、paswrd、dbname* 处理    :根据输入的参数连接数据库* 输出参数:无* 返回值  :1--连接成功;0--连接失败*/int Connect_Database(char * usrname,char * paswrd,char * dbname){	EXEC SQL BEGIN DECLARE SECTION;		char username[20] = "";		char password[20] = "";		char db_string[20] = "yljf";	EXEC SQL END DECLARE SECTION; 	 /* WriteLogFile("Step in function Connect_Database\n"); */	strcpy(username,usrname);	strcpy(password,paswrd);	strcpy(db_string,dbname);	printf(" begin to connect database........\n");	EXEC SQL CONNECT :username IDENTIFIED BY :password		AT db_name USING :db_string;	if(sqlca.sqlcode!=0)	{		printf("Can't Connect to yljf!\n");		/* WriteLogFile("Can't Connect to the Database\n"); */		return(0);	}	else	{		printf(" Connected to  yljf\n");		/* WriteLogFile("Success connect to the Database!\n"); */		return(1);	}}/* huangliping remark*//** 函数介绍:处理数据库操作过程中出现的错误* 输入参数:msg* 处理    :显示用户定义的错误信息和数据库错误信息* 输出参数:无* 返回值  :1--连接成功;0--连接失败*/void sqlerror (char * msg){	printf(msg);	printf(" \nORACLE error detected: \n");	printf("%s\n",sqlca.sqlerrm.sqlerrmc);	EXEC SQL ROLLBACK RELEASE;	exit (1);}	/******************************************************************************* 函数名:	RollBackData* 作者:	林启鑫* 编写日期:2003.03.20* 函数功能:将已更新的内容回滚* 输入:	* 输出:	* 返回值:	无* 修改记录(如果有)* 注意事项:*******************************************************************************/void RollBackData(void){	EXEC SQL AT db_name ROLLBACK;}/******************************************************************************* 函数名:	CommitData* 作者:	林启鑫* 编写日期:2003.03.20* 函数功能:将已更新的内容提交数据库* 输入:	* 输出:	* 返回值:	无* 修改记录(如果有)* 注意事项:*******************************************************************************/void CommitData(void){	EXEC SQL AT db_name COMMIT WORK;} /******************************************************************************* 函数名:读取属性状态值	* 作者:  GuoQiuLiang	* 编写日期:2005.07* 函数功能:* 输入:	* 输出:	* 返回值:	无* 修改记录(如果有)* 注意事项:*******************************************************************************/  void Read_Property(char property_num[11][20],char * mdl_code,char ac_pro_state[10],char ac_pro_code[10][10]){	EXEC SQL BEGIN DECLARE SECTION; 	/*  char lc_property[10][20]; */   /*  监控属性数组 */        char lc_code[10];                   /* 监控模块代码 */	char result;	EXEC SQL END DECLARE SECTION;	 int i;  			for(i=0;i<11;i++)	{  	    if   (strcmp(property_num[i],'\0')!=0 )	  	         	  	      {   EXEC SQL AT db_name Select state,moni_prop_code into :result,:lc_code  from monitor_prop where description=:property_num[i] and mdl_code=:mdl_code;	                 	                 	                  if (sqlca.sqlcode == 0)	                       { 	                          ac_pro_state[i]=result;    /* 取得属性状态值 */ 	                          strcpy(ac_pro_code[i],prune(lc_code));	                          	                       }  	              }	    else 	       { 	         ac_pro_state[i]='\0';    /* -1 结束状态 */ 	         strcpy(ac_pro_code[i],'\0');	         break;	       }	                	}     /*end for */	           								}/******************************************************************************* 函数名:读取对象状态值	* 作者:   GuoQiuLiang	* 编写日期:2005.07* 函数功能:* 输入:	* 输出:	* 返回值:	0 无效状态 1 有效状态* 修改记录(如果有)* 注意事项:*******************************************************************************/int   Read_Object(char * gc_object, char * mdl_code,char *acz_object_code ){	EXEC SQL BEGIN DECLARE SECTION;	/* char lc_Object[20];                监控对象 */ 	 char lc_code[10];                    /* 监控模块代码 */           		EXEC SQL END DECLARE SECTION;	 	    EXEC SQL AT db_name Select moni_obj_code into :lc_code from monitor_obj where description=:gc_object and mdl_code =:mdl_code  and state ='1' ;	  	   	 	  if (sqlca.sqlcode == 0)	                    {	                      strcpy(acz_object_code,prune(lc_code));	                      return(1);  /* 有效模块*/	                     }   	  else return(0);	}/******************************************************************************* 函数名:写入监控信息到Monitor_Info表* 作者:	GuoQiuLiang* 编写日期:2005.07* 函数功能:* 输入:	* 输出:	* 返回值:	无* 修改记录(如果有)* 注意事项:*******************************************************************************/ void Write_MonitorInfo(char * property_id, char * object_id,char * monitor_information,char * create_time,char * complete_time){	EXEC SQL BEGIN DECLARE SECTION;     	char result;	EXEC SQL END DECLARE SECTION;		  	  EXEC SQL AT db_name Insert into Monitor_Info(moni_obj_code,moni_perp_code,content,created_date,complete_date,state) 	                        VALUES(:object_id,:property_id,:monitor_information,	                        to_date(:create_time,'yyyy-mm-dd hh24:mi:ss'),	                        to_date(:complete_time,'yyyy-mm-dd hh24:mi:ss'),	                        '0');	   EXEC SQL AT db_name COMMIT WORK;                       	 	                        }	/******************************************************************************* 函数名:读取模块状态值	* 作者:	GuoQiuLiang* 编写日期:2005.07* 函数功能:* 输入:	* 输出:	* 返回值:	0 无效状态 1 有效状态* 修改记录(如果有)* 注意事项:*******************************************************************************/int Read_Module(char * device_name,char * module_name ,char * acz_module_code, char * acz_machine_code){	EXEC SQL BEGIN DECLARE SECTION ;        	char machine_code[10];	char module_code[10];	EXEC SQL END DECLARE SECTION;	 		            EXEC SQL AT db_name Select mch_code into :machine_code from machine where name=:device_name; 		strcpy(acz_machine_code, prune(machine_code));		          	EXEC SQL AT db_name Select mdl_code into :module_code from module where mch_code=:acz_machine_code and name=:module_name and state='1';        		if (sqlca.sqlcode == 0)	                    {	                      strcpy(acz_module_code,prune(module_code));	                      return(1);  /* 有效模块*/	                     }   	  else return(0);	       }	       	/******************************************************************************      * Copyright (c) 2005,深圳新宇龙公司OSS部      * All rights reserved.      *       * 文件名称:mypcfun.pc      * 文件标识:      * 摘    要:查询报警条件,报警返回 1,不报警返回 0  (除进程外)      *       * 当前版本:1.1      * 作    者:邓飞      * 完成日期:2005年8月10日      *      * 取代版本:1.0       * 原作者  :      * 完成日期:******************************************************************************/char GetState(char *azp_perpstr,		/*属性字符串指针*/							char *azp_content	  	/*内容字符串指针*/				){	EXEC SQL BEGIN DECLARE SECTION;          VARCHAR cnte[31];           VARCHAR perp[20];         EXEC SQL END DECLARE SECTION; 			char lc_return='0';					EXEC SQL SELECT THRESHOLD_FLOOR,THRESHOLD_CEIL INTO :cnts ,:cnte FROM NEW_DBA.WARNING_CND WHERE MONI_PROP_CODE = :azp_perpStr;		if (strcmp(azp_content,cnts.arr) > 0 && strcmp(azp_content,cnte.arr) < 0)			lc_return = '0';	else			lc_return = '1';		return( lc_return );}									/******************************************************************************      * Copyright (c) 2005,深圳新宇龙公司OSS部      * All rights reserved.      *       * 文件名称:mypcfun.pc      * 文件标识:      * 摘    要:查询进程报警条件,报警返回 1,不报警返回 0        *       * 当前版本:1.1      * 作    者:郭秋亮      * 完成日期:2005.08      *      * 取代版本:1.0       * 原作者  :      * 完成日期:******************************************************************************/char GetPsstate(	char *azp_content	 )/*内容字符串指针*/ {	EXEC SQL BEGIN DECLARE SECTION;          VARCHAR cnte[31];           VARCHAR perp[20];         EXEC SQL END DECLARE SECTION; 			char lc_return='0';					if ( ( NULL != strstr( azp_contnet,"Z" ) ) ||  ( NULL != strstr( azp_content,"T" ) ) )		    lc_return='1';;	else     	    lc_return='0'; 	        return( lc_return );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -