BattMonitor_FBS9100S_Alarm/.classpath
@@ -21,5 +21,7 @@ <classpathentry kind="lib" path="lib/spring-context-2.5.5.jar"/> <classpathentry kind="lib" path="lib/spring-core-2.5.5.jar"/> <classpathentry kind="lib" path="lib/sqljdbc4.jar"/> <classpathentry kind="lib" path="lib/log4j-api-2.15.0.jar"/> <classpathentry kind="lib" path="lib/log4j-core-2.15.0.jar"/> <classpathentry kind="output" path="bin"/> </classpath> BattMonitor_FBS9100S_Alarm/bin/com/battalarm/BattAlarm_Thread_New2.classBinary files differ
BattMonitor_FBS9100S_Alarm/bin/com/battalarm/BattDevHistory_SubtableThread.classBinary files differ
BattMonitor_FBS9100S_Alarm/bin/com/battalarm/BattDevHistory_SubtableThread_SQL.classBinary files differ
BattMonitor_FBS9100S_Alarm/bin/com/battalarm/DeviceAlarm_Thread_New.classBinary files differ
BattMonitor_FBS9100S_Alarm/bin/com/battdata_rt/BattData_RT.classBinary files differ
BattMonitor_FBS9100S_Alarm/bin/com/sql/MysqlConnPool.classBinary files differ
BattMonitor_FBS9100S_Alarm/bin/com/sql/Sql_Mysql.classBinary files differ
BattMonitor_FBS9100S_Alarm/bin/main/main_FBS9100S_Alarm.classBinary files differ
BattMonitor_FBS9100S_Alarm/lib/log4j-api-2.15.0.jarBinary files differ
BattMonitor_FBS9100S_Alarm/lib/log4j-core-2.15.0.jarBinary files differ
BattMonitor_FBS9100S_Alarm/log4j2_fbs9100s_alarm_x64.xml
New file @@ -0,0 +1,63 @@ <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="30"> <properties> <Property name="PATTERN_LAYOUT">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%level] %logger{36} - %msg%n</Property> <property name="LOG_HOME">fbs9100s_alarm_x64_logs</property> </properties> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="${PATTERN_LAYOUT}" /> </Console> <!--warn及以下日志--> <RollingFile name="INFO" fileName="${LOG_HOME}/info.log" filePattern="${LOG_HOME}/info-%d{yyyyMMdd}-%i.log.gz"> <PatternLayout pattern="${PATTERN_LAYOUT}"/> <Filters> <!--如果是error级别拒绝--> <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/> <!--如果是info\warn输出--> <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <Policies> <TimeBasedTriggeringPolicy /> <!--单个文件大小--> <SizeBasedTriggeringPolicy size="20MB"/> </Policies> <!--保存日志文件个数--> <DefaultRolloverStrategy max="9"/> </RollingFile> <!--error级别日志输出--> <RollingFile name="ERROR" fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/error-%d{yyyyMMdd}-%i.log.gz"> <PatternLayout pattern="${PATTERN_LAYOUT}"/> <Filters> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="20MB"/> </Policies> <DefaultRolloverStrategy max="15"> <Delete basePath="${LOG_HOME}/" maxDepth="2"> <IfFileName glob="*.log.gz" > <IfAny> <IfAccumulatedFileCount exceeds="14" /> </IfAny> </IfFileName> <!--!Note: 这里的age必须和filePattern协调, 后者是精确到dd, 这里就要写成xd, xD就不起作用,另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!--> <!--30天--> </Delete> </DefaultRolloverStrategy> </RollingFile> </Appenders> <Loggers> <Root level="trace"> <AppenderRef ref="Console" /> <appenderRef ref="INFO" /> <appenderRef ref="ERROR" /> </Root> </Loggers> </Configuration> BattMonitor_FBS9100S_Alarm/src/com/battalarm/BattAlarm_Thread_New2.java
@@ -8,6 +8,9 @@ import java.util.Date; import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.base.Com; import com.battalarm.BattAlarmParam.AlarmParamCell; import com.battdata_rt.BattData_RT; @@ -31,12 +34,15 @@ private BattData_RT_Array m_AL_Data; private BattAlarmParam m_AlarmParam_COE; private Logger logger = null; public BattAlarm_Thread_New2(AppConfig cfg, MysqlConnPool con_pool, BattData_RT_Array al_data) { m_AppCfg = cfg; m_Conn_Pool = con_pool; m_AlarmParam_COE = new BattAlarmParam(); m_AL_Data = al_data; logger = LogManager.getLogger(this); CreateBattAlarmParamTable(m_Conn_Pool.getConn()); //创建电池告警参数表 for(int i=0;i<m_AL_Data.getItemCount();i++){ @@ -91,7 +97,7 @@ } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(sql != null){ sql.close_con(); @@ -291,13 +297,13 @@ sql.sqlMysqlExecute(sql_str); }*/ } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally{ if(null != res) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } } sql.close_con(); @@ -313,7 +319,7 @@ { Sql_Mysql sql = new Sql_Mysql(conn); String sql_str; ResultSet res; ResultSet res = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_PARAM); @@ -397,10 +403,17 @@ } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); //System.out.println("sql.close_con()"); } @@ -435,7 +448,7 @@ if(false == sql.sqlMysqlCheckIfTableExist(BattAlarmDataTableName)) { System.out.println(BattAlarmDataTableName + " is not exist, create it now..."); sql.logger.info(BattAlarmDataTableName + " is not exist, create it now..."); String sql_str = "CREATE TABLE `" + BattAlarmDataTableName + "` " + "( `num` bigint(20) NOT NULL AUTO_INCREMENT," + " `BattGroupId` int(11) NOT NULL DEFAULT '0'," + @@ -542,13 +555,13 @@ } //---------------------------------------------------------------------------------------------// } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } } sql.close_con(); @@ -566,7 +579,7 @@ sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); if(false == sql.sqlMysqlCheckIfTableExist(BattAlarmDataHistoryTableName)) { System.out.println(BattAlarmDataHistoryTableName + " is not exist, create it now..."); sql.logger.info(BattAlarmDataHistoryTableName + " is not exist, create it now..."); String sql_str = "CREATE TABLE IF NOT EXISTS `tb_battalarm_data_history` (" + " `num` bigint(20) NOT NULL AUTO_INCREMENT," + " `BattGroupId` int(11) NOT NULL DEFAULT '0'," + @@ -639,13 +652,13 @@ sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataHistoryTableName + " ADD INDEX `index_alm_level` (`alm_level` ASC);"); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } } sql.close_con(); @@ -702,7 +715,7 @@ } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); //System.out.println("sql.close_con()"); @@ -724,7 +737,7 @@ try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -771,7 +784,7 @@ sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -793,7 +806,7 @@ sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -849,7 +862,7 @@ //} } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -858,8 +871,9 @@ private void getBattRtDataFromRamDB(Connection conn, BattData_RT rt_data) { Sql_Mysql sql = new Sql_Mysql(conn); ResultSet res = null; try { ResultSet res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.BattRtState_Table res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.BattRtState_Table + " WHERE BattGroupId=" + rt_data.BattGroupId); if(res.next()) { rt_data.TestData.onlineVol = res.getFloat("online_vol"); @@ -887,8 +901,15 @@ //计算电池组的单体实际容量电池组的放完剩余容量 BattAlarm_Thread_SQL.queryBattLastTestData(m_Conn_Pool, rt_data); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e1) { sql.logger.error(e1.toString(), e1); } } sql.close_con(); } } @@ -904,7 +925,7 @@ //System.out.println(sql_str); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -934,7 +955,7 @@ //sql.sqlMysqlExecute(sql_str2); //sql.sqlMysqlExecute(sql_str3); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -953,7 +974,7 @@ //System.out.println(sql_str); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -988,8 +1009,15 @@ battalarm.usr_id = rs.getInt("usr_Id"); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); }finally { if(null != rs) { try { rs.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } @@ -1027,8 +1055,15 @@ alarms.add(battalarm); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); }finally { if(null != rs) { try { rs.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } return alarms; @@ -1039,7 +1074,7 @@ try { updateBattAlarm_StartTime(m_Conn_Pool,"V"+main_FBS9100S_Alarm.m_VersionNum); //更新线程监控中的电池告警的启动时间 System.out.println(this.getName() + " - BattAlarm_Thread Delayed For " logger.info(this.getName() + " - BattAlarm_Thread Delayed For " + m_AppCfg.getBattAlarmClearedDelay() + " Seconds To Start..."); int delay_time_count = m_AppCfg.getBattAlarmFnStartDelay(); @@ -1049,7 +1084,7 @@ // } //clearHistoryAlarm_BattNew(m_Conn_Pool); //将之前的实时告警记录改为历史告警记录 System.out.println(this.getName() + " - BattAlarm_Thread Started at " logger.info(this.getName() + " - BattAlarm_Thread Started at " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); for(int n=0; n<m_AL_Data.getItemCount(); n++) @@ -1103,11 +1138,11 @@ alarms.clear(); sleep(200); } catch (InterruptedException e) { e.printStackTrace(); logger.error(e.toString(), e); } } } catch (Exception e1) { e1.printStackTrace(); logger.error(e1.toString(), e1); } } BattMonitor_FBS9100S_Alarm/src/com/battalarm/BattDevHistory_SubtableThread.java
@@ -5,6 +5,9 @@ import java.util.Date; import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.base.Com; import com.sql.MysqlConnPool; @@ -19,16 +22,18 @@ private List<BattAlarmData> battAlmDatas; //需要分表的电池历史告警记录 private List<FBS9100_DevData> devAlmDatas; //需要分表的设备历史告警记录 private MysqlConnPool pool; private Logger logger = null; public BattDevHistory_SubtableThread(MysqlConnPool pool) { this.battAlmDatas = new ArrayList<>(); //需要分表的电池历史告警记录 this.devAlmDatas = new ArrayList<>(); //需要分表的设备历史告警记录 this.pool = pool; this.logger = LogManager.getLogger(this); } @Override public void run() { System.out.println(" BattDevHistory_SubtableThread Start at " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) ); logger.info(" BattDevHistory_SubtableThread Start at " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) ); Date time = new Date(0); Date lastCheck = time; //上一次检测历史告警时间 Date lastDelete = time; //上一次删除历史告警时间 @@ -94,12 +99,12 @@ return; } catch (Exception e) { e.printStackTrace(); logger.error(e.toString(), e); } finally { try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); logger.error(e.toString(), e); } } } BattMonitor_FBS9100S_Alarm/src/com/battalarm/BattDevHistory_SubtableThread_SQL.java
@@ -46,13 +46,13 @@ battAlarms.add(alm); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } } sql.close_con(); @@ -92,13 +92,13 @@ devAlmDatas.add(alm); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } } sql.close_con(); @@ -146,7 +146,7 @@ sql_strs.add(sql_str_del); sql.makeManualCommit(sql_strs); } catch (Exception e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -190,7 +190,7 @@ sql_strs.add(sql_str_del); sql.makeManualCommit(sql_strs); } catch (Exception e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -218,6 +218,7 @@ " `alm_confirmed_time` datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," + " `alm_cleared_type` int(11) NOT NULL DEFAULT '0'," + " `usr_Id` int(11) NOT NULL DEFAULT '0'," + " `alm_severity` int(11) NOT NULL DEFAULT '0' COMMENT '告警重要等级[0:重要;1:紧急]'," + " PRIMARY KEY (`num`)," + " KEY `index_battgroup_id` (`BattGroupId`)," + " KEY `index_Record_Id` (`Record_Id`)," + @@ -226,12 +227,12 @@ " KEY `index_alm_cleared_type` (`alm_cleared_type`)," + " KEY `index_alm_signal_id` (`alm_signal_id`)," + " KEY `index_alm_level` (`alm_level`)" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8; " ; ") ENGINE=InnoDB AUTO_INCREMENT=122358 DEFAULT CHARSET=utf8" ; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally{ sql.close_con(); } @@ -257,18 +258,19 @@ " `alm_confirmed_time` datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," + " `alm_cleared_type` int(11) NOT NULL DEFAULT '0'," + " `usr_Id` int(11) NOT NULL DEFAULT '0'," + " `alm_severity` int(11) NOT NULL DEFAULT '1' COMMENT '告警重要等级[0:重要;1:紧急]'," + " PRIMARY KEY (`num`)," + " KEY `index_record_id` (`record_id`)," + " KEY `index_dev_id` (`dev_id`)," + " KEY `index_alm_type` (`alm_type`)," + " KEY `index_alm_start_time` (`alm_start_time`)," + " KEY `index_alm_cleared_type` (`alm_cleared_type`)" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8; " ; ") ENGINE=InnoDB AUTO_INCREMENT=16458 DEFAULT CHARSET=utf8 " ; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally{ sql.close_con(); } @@ -299,21 +301,21 @@ } sql_delete_strs.append("db_alarm." + res.getString("TABLE_NAME")); System.err.println("自动删除超过3年的告警表 : db_alarm."+res.getString("TABLE_NAME")+"\t at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); sql.logger.info("自动删除超过3年的告警表 : db_alarm."+res.getString("TABLE_NAME")+"\t at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); count++; } if(count >0) { System.out.println(sql_delete_strs.toString()); //System.out.println(sql_delete_strs.toString()); sql.sqlMysqlExecute(sql_delete_strs.toString()); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } } sql.close_con(); BattMonitor_FBS9100S_Alarm/src/com/battalarm/DeviceAlarm_Thread_New.java
@@ -2,13 +2,15 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.base.Com; import com.config.AppConfig; @@ -79,10 +81,14 @@ private MysqlConnPool m_Conn_Pool; private AppConfig m_AppCfg = null; private Logger logger = null; public DeviceAlarm_Thread_New(AppConfig cfg, MysqlConnPool con_pool) { m_AppCfg = cfg; m_Conn_Pool = con_pool; logger = LogManager.getLogger(this); createDevAlarmTable_IfNotExist(m_Conn_Pool); //创建设备实时告警记录表 @@ -96,11 +102,12 @@ private void createDevAlarmTable_IfNotExist(MysqlConnPool conn_pool) { Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn()); ResultSet res = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); if(false == sql.sqlMysqlCheckIfTableExist(DeviceAlarmTableName)) { System.out.println(DeviceAlarmTableName + " is not exist, create it now..."); sql.logger.info(DeviceAlarmTableName + " is not exist, create it now..."); String sql_str = " CREATE TABLE `" + DeviceAlarmTableName + "` " + "(" + " `num` bigint(20) NOT NULL AUTO_INCREMENT," + " `record_id` bigint(20) NOT NULL DEFAULT '0'," + @@ -129,7 +136,7 @@ } //--------------将alm_is_cleared boolean字段改为alm_cleared_type int类型 2016-05-15--------------// ResultSet res = sql.sqlMysqlQuery("SELECT DATA_TYPE FROM information_schema.columns" res = sql.sqlMysqlQuery("SELECT DATA_TYPE FROM information_schema.columns" + " WHERE table_schema='db_alarm'" + " AND table_name='" + DeviceAlarmTableName + "'" + " AND column_name='alm_is_cleared'"); @@ -183,8 +190,15 @@ //----------------------------------------------------------------------------------------------// } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); //System.out.println("sql.close_con()"); } @@ -197,11 +211,12 @@ private void createDevAlarm_HistoryTable_IfNotExist(MysqlConnPool conn_pool) { Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn()); ResultSet res = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); if(false == sql.sqlMysqlCheckIfTableExist(DeviceALarmHistoryTableName)) { System.out.println(DeviceALarmHistoryTableName + " is not exist, create it now..."); sql.logger.info(DeviceALarmHistoryTableName + " is not exist, create it now..."); String sql_str = "CREATE TABLE IF NOT EXISTS `"+DeviceALarmHistoryTableName+"` (" + " `num` bigint(20) NOT NULL AUTO_INCREMENT," + " `record_id` bigint(20) NOT NULL DEFAULT '0'," @@ -228,7 +243,7 @@ } //添加设备告警值字段alm_value ResultSet res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns" res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns" + " WHERE table_schema='db_alarm'" + " AND table_name='" + DeviceALarmHistoryTableName + "'" + " AND column_name='alm_value'"); @@ -248,8 +263,15 @@ + " ADD COLUMN `alm_severity` int(11) NOT NULL DEFAULT '1' COMMENT '告警重要等级[0:重要;1:紧急]';"); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); //System.out.println("sql.close_con()"); } @@ -313,7 +335,7 @@ sql.sqlMysqlExecute(sql_str); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); //System.out.println("sql.close_con()"); @@ -349,7 +371,7 @@ //sql.sqlMysqlExecute(sql_str2); //sql.sqlMysqlExecute(sql_str3); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -360,13 +382,14 @@ public static List<FBS9100_DevData> selectAllDev(MysqlConnPool conn_pool){ Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); List<FBS9100_DevData> list = new ArrayList<FBS9100_DevData>(); ResultSet rs = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_RamDB); String sql_str = " SELECT DISTINCT(dev_id),dev_ip,record_datetime,dev_temp,dev_61850alarms,dev_batt_xuhang_tlong,dev_station_poff_tlong,dev_station_poff_cnt,dev_last_captest_stop_type,dev_workstate,dev_onlinevollow " +" FROM " + Sql_Mysql.FBS9100State_Table +"," + Sql_Mysql.BattInf_Table +" WHERE tb_fbs9100_state.dev_id = tb_battinf.FBSDeviceId "; //System.out.println("sql_str: "+sql_str); ResultSet rs = sql.sqlMysqlQuery(sql_str); rs = sql.sqlMysqlQuery(sql_str); SimpleDateFormat sdf = new SimpleDateFormat(Com.DTF_YMDhms); while(rs.next()) { FBS9100_DevData fbs9100_devdata=new FBS9100_DevData(); @@ -385,8 +408,15 @@ list.add(fbs9100_devdata); } } catch (SQLException | ParseException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != rs) { try { rs.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } return list; @@ -423,8 +453,15 @@ list.add(fbs9100_devdata); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } return list; @@ -434,6 +471,7 @@ public static FBS9100_DevData judgedevidInorNo(MysqlConnPool conn_pool,int dev_id,int alm_type_id){ Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); FBS9100_DevData devData = null; ResultSet rs = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); String sql_str = " SELECT dev_id,record_id,alm_level,alm_type,alm_cleared_type,alm_start_time " @@ -443,7 +481,7 @@ /*String sql_str = "SELECT record_id,alm_level FROM " + DeviceAlarmTableName + " WHERE dev_id=" + dev_id+ " AND alm_type= "+ alm_type_id + " AND record_id != 0 AND alm_cleared_type = 0"; + " limit 1 ";*/ ResultSet rs = sql.sqlMysqlQuery(sql_str); rs = sql.sqlMysqlQuery(sql_str); if(rs.next()) { devData = new FBS9100_DevData(); @@ -454,8 +492,15 @@ devData.setAlm_cleared_type(rs.getInt("alm_cleared_type")); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(null != rs) { try { rs.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } return devData; @@ -471,7 +516,7 @@ + " AND ServerName='BMS_FBSDEV_ALARM'"; sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -487,7 +532,7 @@ + "WHERE alm_cleared_type = 0 "; sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -497,7 +542,7 @@ public void run() { //clearHistoryAlarm_DEV(m_Conn_Pool); //将设备实时的告警记录改成历史告警记录 updateDeviceAlarm_StartTime(m_Conn_Pool,"V"+main_FBS9100S_Alarm.m_VersionNum); //更新设备告警的启动时间 System.out.println(this.getName() + " - DevAlarm_Thread Started at " logger.info(this.getName() + " - DevAlarm_Thread Started at " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); @@ -520,7 +565,7 @@ } } } catch (Exception e1) { e1.printStackTrace(); logger.error(e1.toString(), e1); } while(true) @@ -808,7 +853,7 @@ try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -827,7 +872,7 @@ //System.out.println(sql_str); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { sql.close_con(); } @@ -866,13 +911,13 @@ list.add(data); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { if(rs != null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } } sql.close_con(); @@ -907,14 +952,14 @@ } SDalarm.isAlarm = flag; } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { try { if(rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } sql.close_con(); } @@ -958,14 +1003,14 @@ //} } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { try { if(rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } sql.close_con(); } @@ -1003,14 +1048,14 @@ isEffective = true; } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } finally { try { if(rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); sql.logger.error(e.toString(), e); } sql.close_con(); } BattMonitor_FBS9100S_Alarm/src/com/battdata_rt/BattData_RT.java
@@ -423,9 +423,9 @@ vol_data.monRealCap_AlarmData.makeAlarmData(al_alm_data, m_AlarmParam.alm_MonREALCAP, vol_data.monRealCap); } long outtimelong = Math.abs((new Date().getTime()) - TestData.recordTime.getTime()); if(BattGroupId == 1000021) { System.out.println("TestData.groupVol_AlarmData.alm_signal_id:"+TestData.groupVol_AlarmData.alm_signal_id+"==" + this.TestData.groupVol_AlarmData.getAlarmState()); } // if(BattGroupId == 1000021) { // System.out.println("TestData.groupVol_AlarmData.alm_signal_id:"+TestData.groupVol_AlarmData.alm_signal_id+"==" + this.TestData.groupVol_AlarmData.getAlarmState()); // } if(outtimelong<60*1000) { BattAlarm_Thread_SQL.updateBattRtState_Table(pool, this); BattAlarm_Thread_SQL.updateBattAlarm_RT_RamDB_Table(pool, this); BattMonitor_FBS9100S_Alarm/src/com/sql/MysqlConnPool.java
@@ -3,15 +3,21 @@ import java.sql.Connection; import java.sql.SQLException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.mchange.v2.c3p0.ComboPooledDataSource; public class MysqlConnPool { private ComboPooledDataSource mysql_ds = new ComboPooledDataSource(); private int mSqlPort = 5306; public Logger logger = null; public MysqlConnPool(String server_ip, int port, int conncount_max) { try { logger = LogManager.getLogger(this); init(server_ip, port, conncount_max); } catch (PropertyVetoException e) { e.printStackTrace(); @@ -34,7 +40,7 @@ try { con = mysql_ds.getConnection(); } catch (SQLException e) { e.printStackTrace(); logger.error("MysqlConnPool.getConn()"+e.toString(), e); } return con; } BattMonitor_FBS9100S_Alarm/src/com/sql/Sql_Mysql.java
@@ -5,6 +5,9 @@ import java.sql.Statement; import java.util.ArrayList; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.base.Com; /** @@ -138,9 +141,12 @@ //--------------------------------------------------------------------------------------------// public Connection mysql_con; public Logger logger = null; public Sql_Mysql(Connection conn) { mysql_con = conn; logger = LogManager.getLogger(this); } /* @@ -159,7 +165,7 @@ try { mysql_con.close(); } catch (SQLException e) { e.printStackTrace(); logger.error(this.getClass()+".close_con()"+e.toString(), e); } } @@ -189,7 +195,7 @@ st_count++; } } catch (SQLException e) { e.printStackTrace(); logger.error(this.getClass()+".getBattStationCount()"+e.toString(), e); } return st_count; @@ -239,7 +245,7 @@ } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.error(this.getClass()+".makeManualCommit()"+e.toString(), e); exe_res = false; } finally { try { @@ -249,7 +255,7 @@ mysql_con.setAutoCommit(true); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); logger.error(this.getClass()+".makeManualCommit()"+e1.toString(), e1); } } @@ -305,7 +311,7 @@ stname = res.getString("StationName"); } } catch (SQLException e) { e.printStackTrace(); logger.error(this.getClass()+".getStationName()"+e.toString(), e); } return stname; @@ -325,7 +331,7 @@ bgname = res.getString("BattGroupName"); } } catch (SQLException e) { e.printStackTrace(); logger.error(this.getClass()+".getBattGroupName()"+e.toString(), e); } return bgname; @@ -344,7 +350,7 @@ usrname = res.getString("uName"); } } catch (SQLException e) { e.printStackTrace(); logger.error(this.getClass()+".getUsrName()"+e.toString(), e); } return usrname; @@ -386,7 +392,7 @@ taskname = res.getString("task_name"); } } catch (SQLException e) { e.printStackTrace(); logger.error(this.getClass()+".getUsrTaskName()"+e.toString(), e); } return taskname; @@ -405,7 +411,7 @@ taskcreatetime = Com.getDateTimeFormat(res.getTimestamp("task_create_date"), Com.DTF_YMDhms); } } catch (SQLException e) { e.printStackTrace(); logger.error(this.getClass()+".getUsrTaskCreateTime()"+e.toString(), e); } return taskcreatetime; @@ -441,7 +447,7 @@ mysql_con.commit(); } catch (SQLException e) { e.printStackTrace(); logger.error(this.getClass()+".getBattTestRecordCountNew()"+e.toString(), e); res_exe = false; } finally { if(false == res_exe) { @@ -450,7 +456,7 @@ mysql_con.setAutoCommit(true); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); logger.error(this.getClass()+".getBattTestRecordCountNew()"+e.toString(), e); } } } BattMonitor_FBS9100S_Alarm/src/com/version_inf/version_inf.txt
@@ -21,6 +21,7 @@ 3.修复放电单体电压低告警未在放电时触发bug 4.修复告警检测逻辑,加快电池告警触发灵敏度 5.修复在关闭使能后,之前存在的告警未消除bug 6.新增log4j日志打印,避免长时间运行日志溢出 V2.214 edit at date 2023-03-03 lijun BattMonitor_FBS9100S_Alarm/src/main/main_FBS9100S_Alarm.java
@@ -4,6 +4,9 @@ import java.util.Date; import java.util.TimeZone; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.base.Com; import com.battalarm.BattAlarm_Thread_New; import com.battalarm.BattAlarm_Thread_New2; @@ -75,10 +78,18 @@ private static MysqlConnPool GB_MysqlConnPool; private static BattData_RT_Array GB_DataArray; public static AppParam GB_App_Param; private static Logger logger; static { System.setProperty("log4j.configurationFile", "log4j2_fbs9100s_alarm_x64.xml"); // System.setProperty("contextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"); } /*********************************************************************************************/ /*********************************************************************************************/ public static void main(String[] args) { TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); logger = LogManager.getLogger(main_FBS9100S_Alarm.class); /*//BasicConfigurator.configure();*/ String ver = m_Version; @@ -114,10 +125,10 @@ FTP_Server_Port = DEF_FTP_ServerFBO_Port; } //System.out.println(ver+"%%%%%%%%%%%%%"); System.out.println("/****************************************************************"); System.out.println("*****************************************************************"); System.out.println("****************************************************************/"); System.out.println(ver); logger.info("/****************************************************************"); logger.info("*****************************************************************"); logger.info("****************************************************************/"); logger.info(ver); //创建config.xml文件 m_AppConfig = new AppConfig(); /* @@ -135,7 +146,7 @@ //检测数据库连接 checkingMySQLServerStart(); //MysqlServer_Port = 5306; System.out.println("IP:"+m_AppConfig.getMysqlServerIp()+"port"+MysqlServer_Port); logger.info("IP:"+m_AppConfig.getMysqlServerIp()+"port"+MysqlServer_Port); //初始化连接池中的各种参数信息 @@ -161,57 +172,42 @@ //更新tb_batt_rtdata,tb_server_state,tb_batt_rtstate表中的数据 GB_DataArray.initBattDataRT_Inf(); System.out.println( "------------------- AppConfig start -----------------------------------\n" + "MysqlServerIp=" + m_AppConfig.getMysqlServerIp() + "\n" + "SybaseServerIp=" + m_AppConfig.getSourceSQLServerIp() + "\n" + "MysqlConnCountMax=" + m_AppConfig.getMysqlConnCountMax() + "\n" + "WorkThreadCountMax=" + m_AppConfig.getWorkThreadCountMax() + "\n" + "SourceBattDataType=" + m_AppConfig.getSourceBattDataType() + "\n" + "FbsDeviceBaseIp=" + m_AppConfig.getFbsDeviceBaseIp() + "\n" + "BattAlarmFnEn=" + m_AppConfig.getBattAlarmFnEn() + "\n" + "BattAlarmFnStartDelay=" + m_AppConfig.getBattAlarmFnStartDelay() + "\n" + "BattAlarmClearedDelay=" + m_AppConfig.getBattAlarmClearedDelay() + "\n" + "BattResStoreFnEn=" + m_AppConfig.getBattResStoreFnEn() + "\n" + "BattResStoreDelayForTestManual=" + m_AppConfig.getBattResStoreDelayForTestManual() + "\n" + "BattResStoreDayInterval=" + m_AppConfig.getBattResStoreDayInterval() + "\n" + "------------------- AppConfig end -----------------------------------\n"); logger.info("------------------- AppConfig start -----------------------------------" ); logger.info("MysqlServerIp=" + m_AppConfig.getMysqlServerIp() ); logger.info("SybaseServerIp=" + m_AppConfig.getSourceSQLServerIp() ); logger.info("MysqlConnCountMax=" + m_AppConfig.getMysqlConnCountMax() ); logger.info("WorkThreadCountMax=" + m_AppConfig.getWorkThreadCountMax() ); logger.info("SourceBattDataType=" + m_AppConfig.getSourceBattDataType() ); logger.info("FbsDeviceBaseIp=" + m_AppConfig.getFbsDeviceBaseIp() ); logger.info("BattAlarmFnEn=" + m_AppConfig.getBattAlarmFnEn() ); logger.info("BattAlarmFnStartDelay=" + m_AppConfig.getBattAlarmFnStartDelay() ); logger.info("BattAlarmClearedDelay=" + m_AppConfig.getBattAlarmClearedDelay() ); logger.info("BattResStoreFnEn=" + m_AppConfig.getBattResStoreFnEn() ); logger.info("BattResStoreDelayForTestManual=" + m_AppConfig.getBattResStoreDelayForTestManual() ); logger.info("BattResStoreDayInterval=" + m_AppConfig.getBattResStoreDayInterval() ); logger.info("------------------- AppConfig end -----------------------------------"); System.out.println( "--------------------- App_Param start---------------------------------\n" + "Discharge_TestTimeLongMinimum=" + GB_App_Param.getTestTimeLongMinimum(AppParam.AppParam_Discharge) + "\n" + "Discharge_SaveDataTimeInterval=" + GB_App_Param.getSaveDataTimeInterval(AppParam.AppParam_Discharge) + "\n" + "Discharge_MonVolChangeLevel=" + GB_App_Param.getMonVolChangeLevel(AppParam.AppParam_Discharge) + "\n" + "Discharge_BattTestGroupCountMax=" + GB_App_Param.getBattTestGroupCountMax(AppParam.AppParam_Discharge) + "\n" + "Discharge_TestDataRecordCountMax=" + GB_App_Param.getTestDataRecordCountMax(AppParam.AppParam_Discharge) + "\n" + "--------------------------------------------------------------------\n" + "Charge_TestTimeLongMinimum=" + GB_App_Param.getTestTimeLongMinimum(AppParam.AppParam_Charge) + "\n" + "Charge_SaveDataTimeInterval=" + GB_App_Param.getSaveDataTimeInterval(AppParam.AppParam_Charge) + "\n" + "Charge_MonVolChangeLevel=" + GB_App_Param.getMonVolChangeLevel(AppParam.AppParam_Charge) + "\n" + "Charge_BattTestGroupCountMax=" + GB_App_Param.getBattTestGroupCountMax(AppParam.AppParam_Charge) + "\n" + "Charge_TestDataRecordCountMax=" + GB_App_Param.getTestDataRecordCountMax(AppParam.AppParam_Charge) + "\n" + "--------------------------------------------------------------------\n" + "Poweroff_TestTimeLongMinimum=" + GB_App_Param.getTestTimeLongMinimum(AppParam.AppParam_PowerOff) + "\n" + "Poweroff_SaveDataTimeInterval=" + GB_App_Param.getSaveDataTimeInterval(AppParam.AppParam_PowerOff) + "\n" + "Poweroff_MonVolChangeLevel=" + GB_App_Param.getMonVolChangeLevel(AppParam.AppParam_PowerOff) + "\n" + "Poweroff_BattTestGroupCountMax=" + GB_App_Param.getBattTestGroupCountMax(AppParam.AppParam_PowerOff) + "\n" + "Poweroff_TestDataRecordCountMax=" + GB_App_Param.getTestDataRecordCountMax(AppParam.AppParam_PowerOff) + "\n" + "--------------------------------------------------------------------\n" + "Discharge_BattJunHengFN=" + GB_App_Param.getBattJunHengFN() + "\n" + "--------------------- App_Param end---------------------------------\n"); logger.info("--------------------- App_Param start---------------------------------"); logger.info("Discharge_TestTimeLongMinimum=" + GB_App_Param.getTestTimeLongMinimum(AppParam.AppParam_Discharge) ); logger.info("Discharge_SaveDataTimeInterval=" + GB_App_Param.getSaveDataTimeInterval(AppParam.AppParam_Discharge) ); logger.info("Discharge_MonVolChangeLevel=" + GB_App_Param.getMonVolChangeLevel(AppParam.AppParam_Discharge) ); logger.info("Discharge_BattTestGroupCountMax=" + GB_App_Param.getBattTestGroupCountMax(AppParam.AppParam_Discharge) ); logger.info("Discharge_TestDataRecordCountMax=" + GB_App_Param.getTestDataRecordCountMax(AppParam.AppParam_Discharge) ); logger.info("--------------------------------------------------------------------"); logger.info("Charge_TestTimeLongMinimum=" + GB_App_Param.getTestTimeLongMinimum(AppParam.AppParam_Charge) ); logger.info("Charge_SaveDataTimeInterval=" + GB_App_Param.getSaveDataTimeInterval(AppParam.AppParam_Charge) ); logger.info("Charge_MonVolChangeLevel=" + GB_App_Param.getMonVolChangeLevel(AppParam.AppParam_Charge) ); logger.info("Charge_BattTestGroupCountMax=" + GB_App_Param.getBattTestGroupCountMax(AppParam.AppParam_Charge) ); logger.info("Charge_TestDataRecordCountMax=" + GB_App_Param.getTestDataRecordCountMax(AppParam.AppParam_Charge) ); logger.info("--------------------------------------------------------------------"); logger.info("Poweroff_TestTimeLongMinimum=" + GB_App_Param.getTestTimeLongMinimum(AppParam.AppParam_PowerOff) ); logger.info("Poweroff_SaveDataTimeInterval=" + GB_App_Param.getSaveDataTimeInterval(AppParam.AppParam_PowerOff) ); logger.info("Poweroff_MonVolChangeLevel=" + GB_App_Param.getMonVolChangeLevel(AppParam.AppParam_PowerOff) ); logger.info("Poweroff_BattTestGroupCountMax=" + GB_App_Param.getBattTestGroupCountMax(AppParam.AppParam_PowerOff) ); logger.info("Poweroff_TestDataRecordCountMax=" + GB_App_Param.getTestDataRecordCountMax(AppParam.AppParam_PowerOff) ); logger.info("--------------------------------------------------------------------"); logger.info("Discharge_BattJunHengFN=" + GB_App_Param.getBattJunHengFN() ); logger.info("--------------------- App_Param end---------------------------------"); /*********************************************************************************/ /*********************************************************************************/ /*********************************************************************************/ @@ -237,23 +233,23 @@ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); logger.error(e.toString(), e); } } } public static void checkingMySQLServerStart(){ int MysqlServer_Port = 3360; System.out.println("IP:"+m_AppConfig.getMysqlServerIp()+"\t port:"+MysqlServer_Port); logger.info("IP:"+m_AppConfig.getMysqlServerIp()+"\t port:"+MysqlServer_Port); //初始化连接池中的各种参数信息 m_AppConfig.getMysqlServerIp() GB_MysqlConnPool = new MysqlConnPool(m_AppConfig.getMysqlServerIp(), MysqlServer_Port, 5); while(true){ Connection conn = null; try { System.out.println(" 开始检测数据库连接 "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); logger.info(" 开始检测数据库连接 "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); conn = GB_MysqlConnPool.getConn(); if(conn != null){ System.out.println("检测数据库连接成功"); logger.info("检测数据库连接成功"); break; }else { //休息1秒重新检测 @@ -263,15 +259,15 @@ try { Thread.sleep(1000); } catch (InterruptedException e1) { System.err.println(e); logger.error(e.toString(), e1); } System.out.println(" MySQL_FBSDEV not Start ... "); logger.info(" MySQL_FBSDEV not Start ... "); } finally { if(conn != null) { try { conn.close(); } catch (SQLException e) { System.err.println(e); logger.error(e.toString(), e); } } }