Browse Source

last commit

shjung 3 years ago
parent
commit
c1e07ecdf6

+ 9 - 1
pom.xml

@@ -72,6 +72,7 @@
             <scope>system</scope>
             <systemPath>${webapp.lib}/tibero6-jdbc-14.jar</systemPath>
         </dependency>
+
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
@@ -100,8 +101,9 @@
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
-            <version>2.1.3</version>
+            <version>2.2.0</version>
         </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-devtools</artifactId>
@@ -150,6 +152,12 @@
             <version>3.11</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.rometools</groupId>
+            <artifactId>rome</artifactId>
+            <version>1.10.0</version>
+        </dependency>
+
         <!-- FOR WEB UI: START -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 4 - 2
src/main/java/com/its/vds/global/AppRepository.java

@@ -16,8 +16,9 @@ public class AppRepository {
 
     public ConcurrentHashMap<String, TbVdsCtlr> ctlrMap = null;
     public ConcurrentHashMap<String, TbVdsCtlr> ctlrIpMap = null;
-    public ConcurrentHashMap<String, TbVdsCtlr> ctlrKeyMap = null;
     public ConcurrentHashMap<Channel, TbVdsCtlr> ctlrChannelMap = null;
+    // TODO
+    //public ConcurrentHashMap<String, TbVdsCtlr> ctlrKeyMap = null;
 
     public static AppRepository getInstance() {
         if (_instance == null) {
@@ -32,8 +33,9 @@ public class AppRepository {
     public AppRepository() {
         this.ctlrMap = new ConcurrentHashMap<>();
         this.ctlrIpMap = new ConcurrentHashMap<>();
-        this.ctlrKeyMap = new ConcurrentHashMap<>();
         this.ctlrChannelMap = new ConcurrentHashMap<>();
+        // TODO
+        //this.ctlrKeyMap = new ConcurrentHashMap<>();
     }
 
 }

+ 8 - 8
src/main/java/com/its/vds/scheduler/SchedulerTask.java

@@ -32,12 +32,12 @@ public class SchedulerTask {
             return;
         }
         Elapsed elapsed = new Elapsed();
-        log.info("         UnitSystSchedule: start. {}", Thread.currentThread().getName());
+        log.info("          UnitSystSchedule: start. {}", Thread.currentThread().getName());
         // 프로세스 상태정보 업데이트
         this.unitSystService.updateUnitSystStts(true);
         // 제어기 상태정보 업데이트(제어기/프로세스 상태정보 UDP 전송)
         this.vdsCtlrService.updateCtlrStts(true);
-        log.info("         UnitSystSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
+        log.info("          UnitSystSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
     }
 
     @Scheduled(cron = "15 1 0/1 * * *")    // 매시 1분 15초
@@ -46,11 +46,11 @@ public class SchedulerTask {
             return;
         }
         Elapsed elapsed = new Elapsed();
-        log.info("VdsRTCSchedule: start. {}", Thread.currentThread().getName());
+        log.info("            VdsRTCSchedule: start. {}", Thread.currentThread().getName());
         // 온도정보(온도/입력전압/출력전압) 요청
         // 제어기 동기화 요청
         this.vdsCtlrService.requestRTC();
-        log.info("VdsRTCSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
+        log.info("            VdsRTCSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
     }
 
     @Scheduled(cron = "4/30 * * * * *")    // 30초마다 요청(4초, 34초)
@@ -74,9 +74,9 @@ public class SchedulerTask {
         Elapsed elapsed = new Elapsed();
         // VDS 교통 데이터를 요청한 다음에 차량 정보를 요청한다.
         // 제어기에서 동기화가 안되기 때문에 교통 데이터를 요청한 다음에 5초 후에 요청한다.
-        log.info("VdsDataRequestSchedule: start. {}", Thread.currentThread().getName());
+        log.info("    VdsDataRequestSchedule: start. {}", Thread.currentThread().getName());
         this.vdsCtlrService.requestData();
-        log.info("VdsDataRequestSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
+        log.info("    VdsDataRequestSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
     }
 
     @Scheduled(cron = "40 0/5 * * * *")    // 정주기 5분 40초에 스케쥴 실행
@@ -85,7 +85,7 @@ public class SchedulerTask {
             return;
         }
         Elapsed elapsed = new Elapsed();
-        log.info("       StatisticsSchedule: start. {}", Thread.currentThread().getName());
+        log.info("     VdsStatisticsSchedule: start. {}", Thread.currentThread().getName());
         ProcessConfig processConfig = (ProcessConfig) AppUtils.getBean(ProcessConfig.class);
         if (processConfig.isStatistics()) {
             StatisticsTime its = new StatisticsTime();
@@ -125,7 +125,7 @@ public class SchedulerTask {
 //            }
             its.setProcessing(false);
         }
-        log.info("       StatisticsSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
+        log.info("     VdsStatisticsSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
     }
 
     @PreDestroy

+ 1 - 1
src/main/java/com/its/vds/service/VdsCtlrService.java

@@ -87,7 +87,7 @@ public class VdsCtlrService {
                     AppRepository.getInstance().getCtlrIpMap().put(obj.getVDS_CTLR_IP(), obj);
 
                     // TODO
-                    AppRepository.getInstance().getCtlrKeyMap().put(obj.getVDS_CTLR_IP() + ":" + obj.getVDS_CTLR_PORT(), obj);
+                    //AppRepository.getInstance().getCtlrKeyMap().put(obj.getVDS_CTLR_IP() + ":" + obj.getVDS_CTLR_PORT(), obj);
                 }
             }
         }

+ 5 - 5
src/main/java/com/its/vds/xnettcp/vds/codec/VdsTcpClientDecoder.java

@@ -28,11 +28,11 @@ public class VdsTcpClientDecoder extends ByteToMessageDecoder {
         Channel channel = ctx.channel();
 
         // TODO
-        int port = NettyUtils.getRemotePort(ctx.channel());
-        log.error("decode...........................................: {}, {}", ipAddress, port);
-        String objKey = ipAddress + ":" + Integer.toString(port);
-        TbVdsCtlr obj = AppRepository.getInstance().getCtlrKeyMap().get(objKey);
-        //TbVdsCtlr obj = AppRepository.getInstance().getCtlrIpMap().get(ipAddress);
+        //int port = NettyUtils.getRemotePort(ctx.channel());
+        //log.error("decode...........................................: {}, {}", ipAddress, port);
+        //String objKey = ipAddress + ":" + Integer.toString(port);
+        //TbVdsCtlr obj = AppRepository.getInstance().getCtlrKeyMap().get(objKey);
+        TbVdsCtlr obj = AppRepository.getInstance().getCtlrIpMap().get(ipAddress);
         if (obj == null) {
             log.error("VdsTcpClientDecoder.decode: Unknown Controller IP: {}. will be close.", ipAddress);
             VdsTcpClientIdleHandler.disconnectChannel(channel);

+ 0 - 54
src/main/resources/application-backup.propertiesx

@@ -1,54 +0,0 @@
-#[logging]
-spring.devtools.livereload.enabled:false
-logging.config= classpath:logback-spring.xml
-#logging.config= conf//app-comm-server-logback.xml
-
-#[Application properties]
-process.id= VDS01
-process.name= VDS Communication Server
-
-#[server config]
-server.user.id= 1
-server.user.pswd= 1
-server.db.threads= 20
-server.data.threads= 40
-server.task.statistics= true
-
-#[server <---> operator]
-server.center.bind.port= 6010
-server.center.dump= false
-
-#[server <---> controller]
-server.tcp.bind.port= 30100
-server.tcp.recv.dump= false
-server.tcp.send.dump= false
-
-#[Database properties]
-#spring.datasource.hikari.driver-class-name= com.tmax.tibero.jdbc.TbDriver
-#spring.datasource.hikari.jdbc-url= jdbc:tibero:thin:@192.168.20.29:8629:tibero
-#spring.datasource.hikari.username= gmutis
-#spring.datasource.hikari.password= gmutis
-
-#spring.datasource.hikari.driver-class-name= oracle.jdbc.OracleDriver
-#spring.datasource.hikari.jdbc-url= jdbc:oracle:thin:@127.0.0.1:1521:HANTE
-spring.datasource.hikari.driver-class-name= net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-spring.datasource.hikari.jdbc-url= jdbc:log4jdbc:oracle:thin:@127.0.0.1:1521:HANTE
-spring.datasource.hikari.username= gmutis
-spring.datasource.hikari.password= gmutis
-
-spring.datasource.hikari.jpool-name= hikari-cp
-spring.datasource.hikari.jmaximum-pool-size= 30
-spring.datasource.hikari.jminimum-idle= 2
-
-
-# FOR WEB UI: START
-server.shutdown= graceful
-server.port= 8080
-server.error.whitelabel.enabled= true
-server.error.include-exception= false
-server.error.include-stacktrace= never
-
-spring.mvc.view.prefix= /WEB-INF/jsp/
-spring.mvc.view.suffix= .jsp
-server.servlet.session.timeout= 300
-# FOR WEB UI: END

+ 2 - 3
src/main/resources/application.yml

@@ -23,7 +23,7 @@ application:
     listen-port: 9901
 
 server:
-  port: 9875
+  port: 9874
   shutdown: graceful
   error:
     whitelabel:
@@ -38,7 +38,7 @@ spring:
   application:
     name: vds-comm-server
   profiles:
-    active: dev
+    active: prod
   main:
     banner-mode: off
   mvc:
@@ -62,7 +62,6 @@ spring:
     hikari:
       driver-class-name: com.tmax.tibero.jdbc.TbDriver
       jdbc-url: jdbc:tibero:thin:@115.91.94.42:8629:tibero
-      #jdbc-url: jdbc:tibero:thin:@192.168.20.99:8629:tibero
       username: yiits
       password: yiits
       minimumIdle: 5

+ 16 - 24
src/main/resources/logback-spring.xml

@@ -2,8 +2,10 @@
 <configuration scan="true" scanPeriod="60 seconds">
     <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
 
-    <property name="PROJECT_NAME"    value="vds-comm-server"/>
-    <property name="ROOT_LOG_LEVEL"  value="DEBUG"/>
+    <property name="APP_CLASS_PATH"  value="com.its.vds"/>
+    <property name="PROJECT_PREFIX"  value="vds"/>
+    <property name="PROJECT_NAME"    value="${PROJECT_PREFIX}-comm-server"/>
+    <property name="ROOT_LOG_LEVEL"  value="INFO"/>
     <property name="LOG_CHARSET"     value="UTF-8" />
     <property name="LOG_PATH"        value="${user.dir}/logs/"/>
     <property name="LOG_BACKUP_PATH" value="${user.dir}/logs/backup/"/>
@@ -11,12 +13,12 @@
     <property name="LOG_FILE_NAME"             value="${PROJECT_NAME}.log"/>
     <property name="LOG_FILE_NAME_ERROR"       value="${PROJECT_NAME}.err.log"/>
     <property name="LOG_FILE_NAME_PATTERN"     value="%d{yyyyMMdd}_%i.log.gz"/>
-    <property name="LOG_FILE_NAME_PACKET"      value="vds-packet"/>
-    <property name="LOG_FILE_NAME_SESSION"     value="vds-session.log"/>
-    <property name="LOG_FILE_NAME_CENTER_COMM" value="vds-center-comm.log"/>
-    <property name="LOG_FILE_NAME_SQL"         value="vds-sql.log"/>
-    <property name="LOG_FILE_NAME_SCHEDULE"    value="vds-schedule.log"/>
-    <property name="LOG_FILE_NAME_STATISTICS"  value="vds-statistics.log"/>
+    <property name="LOG_FILE_NAME_PACKET"      value="${PROJECT_PREFIX}-packet"/>
+    <property name="LOG_FILE_NAME_SESSION"     value="${PROJECT_PREFIX}-session.log"/>
+    <property name="LOG_FILE_NAME_CENTER_COMM" value="${PROJECT_PREFIX}-center-comm.log"/>
+    <property name="LOG_FILE_NAME_SQL"         value="${PROJECT_PREFIX}-sql.log"/>
+    <property name="LOG_FILE_NAME_SCHEDULE"    value="${PROJECT_PREFIX}-schedule.log"/>
+    <property name="LOG_FILE_NAME_STATISTICS"  value="${PROJECT_PREFIX}-statistics.log"/>
 
     <property name="MAX_FILESIZE" value="10MB"/>
     <property name="MAX_HISTORY"  value="30"/>
@@ -28,17 +30,7 @@
     <property name="LOG_PATTERN_SQL"         value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_SCHEDULE"    value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_STATISTICS"  value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <!--<property name="LOG_PATTERN_CONSOLE"     value="%d{HH:mm:ss.SSS} [%30thread] %highlight([%5level]) %cyan(%42logger{35}.%-20M)${PID:-} : %msg%n"/>
-    <property name="LOG_PATTERN_FILE"        value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%30t] [%5level] %42logger{35}.%-20M ${PID:-} : %msg%n"/>
-    <property name="LOG_PATTERN_ERROR"       value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%30t] [%5level] %42logger{35}.%-20M ${PID:-} : %msg%n"/>
-    <property name="LOG_PATTERN_PACKET"      value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] %msg%n"/>
-    <property name="LOG_PATTERN_SESSION"     value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_CENTER_COMM" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%30t] [%5level] %42logger{35}.%-20M ${PID:-} : %msg%n"/>
-    <property name="LOG_PATTERN_SQL"         value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] %msg%n"/>
-    <property name="LOG_PATTERN_SCHEDULE"    value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%30thread] %msg%n"/>
-    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) [%class{0}.%method] [%thread] %n"/>
-    -->
-    <property name="LOG_PATTERN_CONSOLE" value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) %n"/>
+    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) %n"/>
 
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <withJansi>true</withJansi>
@@ -107,7 +99,7 @@
         <appender-ref ref="FILE_ERROR"/>
     </root>
 
-    <logger name="com.its.vds.xnettcp" level="DEBUG" additivity="false">
+    <logger name="${APP_CLASS_PATH}.xnettcp" level="DEBUG" additivity="false">
         <appender-ref ref="FILE_PACKET"/>
         <appender-ref ref="FILE_ERROR"/>
     </logger>
@@ -125,7 +117,7 @@
         </rollingPolicy>
     </appender>
 
-    <logger name="com.its.vds.xnetudp" level="DEBUG" additivity="false">
+    <logger name="${APP_CLASS_PATH}.xnetudp" level="DEBUG" additivity="false">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="CENTER_COMM"/>
         <appender-ref ref="FILE_ERROR"/>
@@ -144,7 +136,7 @@
         </rollingPolicy>
     </appender>
 
-    <logger name="com.its.vds.xnettcp" level="DEBUG" additivity="true">
+    <logger name="${APP_CLASS_PATH}.xnettcp" level="DEBUG" additivity="true">
         <appender-ref ref="FILE_SESSION"/>
         <appender-ref ref="FILE_ERROR"/>
     </logger>
@@ -162,7 +154,7 @@
         </rollingPolicy>
     </appender>
 
-    <logger name="com.its.vds.service.StatisticsServices" level="DEBUG" additivity="false">
+    <logger name="${APP_CLASS_PATH}.service.StatisticsServices" level="DEBUG" additivity="false">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="FILE_STATISTICS"/>
         <appender-ref ref="FILE_ERROR"/>
@@ -181,7 +173,7 @@
         </rollingPolicy>
     </appender>
 
-    <logger name="com.its.vds.scheduler" level="DEBUG" additivity="false">
+    <logger name="${APP_CLASS_PATH}.scheduler" level="DEBUG" additivity="false">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="FILE_SCHEDULE"/>
         <appender-ref ref="FILE_ERROR"/>