테이블 검증조건 수정, 클라이언트 종료조건, 로깅관련 수정
This commit is contained in:
parent
d157fbb5d6
commit
c38fbfa1ff
@ -47,7 +47,7 @@ dependencies {
|
||||
// https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2
|
||||
implementation 'org.apache.commons:commons-configuration2:2.10.1'
|
||||
// https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
|
||||
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.4.1'
|
||||
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.1.4'
|
||||
// https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11
|
||||
implementation group: 'com.oracle.database.jdbc', name: 'ojdbc11', version: '23.5.0.24.07'
|
||||
// https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.munjaon.client.config;
|
||||
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -39,14 +40,38 @@ public class DataSourceConfig {
|
||||
System.out.println("MARIADB.URL : " + serverConfig.getString(dbms + ".URL"));
|
||||
System.out.println("MARIADB.USER : " + serverConfig.getString(dbms + ".USER"));
|
||||
System.out.println("MARIADB.PASSWORD : " + serverConfig.getString(dbms + ".PASSWORD"));
|
||||
return DataSourceBuilder.create().type(HikariDataSource.class)
|
||||
.driverClassName(serverConfig.getString(dbms + ".DRIVER"))
|
||||
.url(serverConfig.getString(dbms + ".URL"))
|
||||
.username(serverConfig.getString(dbms + ".USER"))
|
||||
.password(serverConfig.getString(dbms + ".PASSWORD"))
|
||||
.build();
|
||||
|
||||
HikariConfig hikariConfig = new HikariConfig();
|
||||
hikariConfig.setDriverClassName(serverConfig.getString(dbms + ".DRIVER"));
|
||||
hikariConfig.setJdbcUrl(serverConfig.getString(dbms + ".URL"));
|
||||
hikariConfig.setUsername(serverConfig.getString(dbms + ".USER"));
|
||||
hikariConfig.setPassword(serverConfig.getString(dbms + ".PASSWORD"));
|
||||
hikariConfig.setMaximumPoolSize(10);
|
||||
if ("ORACLE".equalsIgnoreCase(dbms) || "TIBERO".equalsIgnoreCase(dbms)) {
|
||||
hikariConfig.setConnectionTestQuery("SELECT 1 FROM DUAL");
|
||||
} else {
|
||||
hikariConfig.setConnectionTestQuery("SELECT 1");
|
||||
}
|
||||
|
||||
return new HikariDataSource(hikariConfig);
|
||||
}
|
||||
|
||||
// @Primary
|
||||
// @Bean(name = "datasource")
|
||||
// public DataSource dataSource() throws ConfigurationException {
|
||||
// String dbms = serverConfig.getString("DB.DBMS");
|
||||
// System.out.println("MARIADB.DRIVER : " + serverConfig.getString(dbms + ".DRIVER"));
|
||||
// System.out.println("MARIADB.URL : " + serverConfig.getString(dbms + ".URL"));
|
||||
// System.out.println("MARIADB.USER : " + serverConfig.getString(dbms + ".USER"));
|
||||
// System.out.println("MARIADB.PASSWORD : " + serverConfig.getString(dbms + ".PASSWORD"));
|
||||
// return DataSourceBuilder.create().type(HikariDataSource.class)
|
||||
// .driverClassName(serverConfig.getString(dbms + ".DRIVER"))
|
||||
// .url(serverConfig.getString(dbms + ".URL"))
|
||||
// .username(serverConfig.getString(dbms + ".USER"))
|
||||
// .password(serverConfig.getString(dbms + ".PASSWORD"))
|
||||
// .build();
|
||||
// }
|
||||
|
||||
@Primary
|
||||
@Bean(name = "factory")
|
||||
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
|
||||
|
||||
@ -20,7 +20,7 @@ public class CubridService {
|
||||
try {
|
||||
int msgCount = deliverBMapper.checkTableForMessage();
|
||||
int logCount = deliverBMapper.checkTableForLog();
|
||||
if (msgCount >= 0 && logCount >= 0) {
|
||||
if (msgCount > 0 && logCount > 0) {
|
||||
isExist = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -20,7 +20,7 @@ public class MariaDBService {
|
||||
try {
|
||||
int msgCount = deliverBMapper.checkTableForMessage();
|
||||
int logCount = deliverBMapper.checkTableForLog();
|
||||
if (msgCount >= 0 && logCount >= 0) {
|
||||
if (msgCount > 0 && logCount > 0) {
|
||||
isExist = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -20,7 +20,7 @@ public class MssqlService {
|
||||
try {
|
||||
int msgCount = deliverBMapper.checkTableForMessage();
|
||||
int logCount = deliverBMapper.checkTableForLog();
|
||||
if (msgCount >= 0 && logCount >= 0) {
|
||||
if (msgCount > 0 && logCount > 0) {
|
||||
isExist = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -20,7 +20,7 @@ public class MysqlService {
|
||||
try {
|
||||
int msgCount = deliverBMapper.checkTableForMessage();
|
||||
int logCount = deliverBMapper.checkTableForLog();
|
||||
if (msgCount >= 0 && logCount >= 0) {
|
||||
if (msgCount > 0 && logCount > 0) {
|
||||
isExist = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -20,7 +20,7 @@ public class OracleService {
|
||||
try {
|
||||
int msgCount = deliverBMapper.checkTableForMessage();
|
||||
int logCount = deliverBMapper.checkTableForLog();
|
||||
if (msgCount >= 0 && logCount >= 0) {
|
||||
if (msgCount > 0 && logCount > 0) {
|
||||
isExist = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -20,7 +20,7 @@ public class PostgresqlService {
|
||||
try {
|
||||
int msgCount = deliverBMapper.checkTableForMessage();
|
||||
int logCount = deliverBMapper.checkTableForLog();
|
||||
if (msgCount >= 0 && logCount >= 0) {
|
||||
if (msgCount > 0 && logCount > 0) {
|
||||
isExist = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -5,6 +5,10 @@ import java.nio.ByteBuffer;
|
||||
public final class Packet {
|
||||
public static final byte SET_DEFAULT_BYTE = (byte) 0x00;
|
||||
public static final long LINK_CHECK_CYCLE = 10000L;
|
||||
/* 패킷 만료 시간 체크 */
|
||||
public static final long LIMIT_PACKET_TIMEOUT = 25000L;
|
||||
/* 패킷을 보내고 수신시까지 타임아웃 체크시간 */
|
||||
public static final long LIMIT_PACKET_SEND_TIMEOUT = 30000L;
|
||||
// public static final long LINK_CHECK_CYCLE = 30000L;
|
||||
|
||||
public static void setDefaultByte(ByteBuffer buffer) {
|
||||
|
||||
@ -80,12 +80,19 @@ public class CollectClientService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkTimeOut() {
|
||||
return System.currentTimeMillis() - lastPacketSendTime >= Packet.LIMIT_PACKET_TIMEOUT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doService() {
|
||||
bind();
|
||||
while (isRun()) {
|
||||
try {
|
||||
// saveSystemLog("Root Path : " + System.getProperty("ROOTPATH"));
|
||||
if (checkTimeOut()) {
|
||||
saveSystemLog("[checkTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
break;
|
||||
};
|
||||
messageService();
|
||||
linkCheckService();
|
||||
} catch (Exception e) {
|
||||
@ -103,7 +110,12 @@ public class CollectClientService extends Service {
|
||||
try {
|
||||
saveSystemLog("[BIND REQUEST] [IP : " + this.address + "] [PORT : " + this.port + "] [ID : " + this.id + "]");
|
||||
socketChannel.write(sendBuffer);
|
||||
long BIND_SEND_TIME = System.currentTimeMillis();
|
||||
while (true) {
|
||||
if (System.currentTimeMillis() - BIND_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) {
|
||||
saveSystemLog("[bindTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
throw new RuntimeException("bindTimeOut : Expired ... ... ... ... ... ... ...");
|
||||
}
|
||||
int recvCount = socketChannel.read(recvBuffer);
|
||||
if (recvCount == -1) {
|
||||
saveSystemLog("[BIND ERROR] [CONNECTION CLOSED]");
|
||||
@ -172,17 +184,24 @@ public class CollectClientService extends Service {
|
||||
return;
|
||||
}
|
||||
|
||||
for (MunjaonMsg data : list) {
|
||||
switch (this.serviceType) {
|
||||
case "SMS": smsMessageService(data); break;
|
||||
case "LMS": lmsMessageService(data); break;
|
||||
case "MMS": mmsMessageService(data); break;
|
||||
case "KAT": katMessageService(data); break;
|
||||
case "KFT": kftMessageService(data); break;
|
||||
default:break;
|
||||
try {
|
||||
for (MunjaonMsg data : list) {
|
||||
switch (this.serviceType) {
|
||||
case "SMS": smsMessageService(data); break;
|
||||
case "LMS": lmsMessageService(data); break;
|
||||
case "MMS": mmsMessageService(data); break;
|
||||
case "KAT": katMessageService(data); break;
|
||||
case "KFT": kftMessageService(data); break;
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
saveSystemLog("ERROR [" + e.getMessage() + "]");
|
||||
saveSystemLog("ERROR DETAIL");
|
||||
saveSystemLog(e.toString());
|
||||
}
|
||||
if (this.deliverList != null && this.deliverList.size() > 0) {
|
||||
|
||||
if (this.deliverList != null && !this.deliverList.isEmpty()) {
|
||||
worker.updateDeliverForList(this.deliverList);
|
||||
this.deliverList = null; // NULL로 초기화
|
||||
}
|
||||
@ -218,7 +237,12 @@ public class CollectClientService extends Service {
|
||||
saveSystemLog("[MESSAGE SEND] [... ...]");
|
||||
saveSystemLog("[MESSAGE DATA : " + data.toString() + "]");
|
||||
socketChannel.write(sendBuffer);
|
||||
long MSG_SEND_TIME = System.currentTimeMillis();
|
||||
while (true) {
|
||||
if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) {
|
||||
saveSystemLog("[messageSendTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
throw new RuntimeException("messageSendTimeOut : Expired ... ... ... ... ... ... ...");
|
||||
}
|
||||
int recvCount = socketChannel.read(recvBuffer);
|
||||
if (recvCount == -1) {
|
||||
saveSystemLog("[MESSAGE SEND] [FAIL] [SOCKET IS CLOSED]");
|
||||
@ -232,8 +256,10 @@ public class CollectClientService extends Service {
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
// throw new RuntimeException(e);
|
||||
saveSystemLog("ERROR [" + e.getMessage() + "]");
|
||||
saveSystemLog("ERROR DETAIL");
|
||||
saveSystemLog(e.toString());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -267,27 +293,44 @@ public class CollectClientService extends Service {
|
||||
saveSystemLog("[MESSAGE SEND] [... ...]");
|
||||
saveSystemLog("[MESSAGE DATA : " + data.toString() + "]");
|
||||
socketChannel.write(sendBuffer);
|
||||
long MSG_SEND_TIME = System.currentTimeMillis();
|
||||
while (true) {
|
||||
if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) {
|
||||
saveSystemLog("[messageSendTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
throw new RuntimeException("messageSendTimeOut : Expired ... ... ... ... ... ... ...");
|
||||
}
|
||||
int recvCount = socketChannel.read(recvBuffer);
|
||||
if (recvCount == -1) {
|
||||
saveSystemLog("[MESSAGE SEND] [FAIL] [SOCKET IS CLOSED]");
|
||||
throw new RuntimeException("DELIVER ERROR");
|
||||
} else if (recvCount > 0) {
|
||||
worker.updateToDeliver(data.getMsgId());
|
||||
setDeliverMsgId(data.getMsgId());
|
||||
// worker.updateToDeliver(data.getMsgId());
|
||||
saveSystemLog("[MESSAGE SEND] [SUCCESS]");
|
||||
lastPacketSendTime = System.currentTimeMillis();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
saveSystemLog("ERROR [" + e.getMessage() + "]");
|
||||
saveSystemLog("ERROR DETAIL");
|
||||
saveSystemLog(e.toString());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void mmsMessageService(MunjaonMsg data) {
|
||||
try {
|
||||
/* 이미지 경로 디폴트 경로 사용 여부 */
|
||||
String defaultYn = getProp("MMS", "DEFAULT_PATH_YN");
|
||||
/* MMS Image 저장 경로 */
|
||||
String path = System.getProperty("ROOTPATH") + File.separator + "mmsfile" + File.separator;
|
||||
String path = null;
|
||||
if ("Y".equals(defaultYn)) {
|
||||
path = System.getProperty("ROOTPATH") + File.separator + "mmsfile" + File.separator;
|
||||
} else {
|
||||
path = getProp("MMS", "FILEPATH") + File.separator;
|
||||
}
|
||||
|
||||
/* 공통 메시지 유효성 체크 */
|
||||
int checkCommonCode = MessageCheckUtil.validateMessageForCommon(data);
|
||||
int checkMsgCode = MessageCheckUtil.validateMessageForMedia(data);
|
||||
@ -363,29 +406,43 @@ public class CollectClientService extends Service {
|
||||
}
|
||||
|
||||
socketChannel.write(byteBuffers);
|
||||
|
||||
long MSG_SEND_TIME = System.currentTimeMillis();
|
||||
while (true) {
|
||||
if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) {
|
||||
saveSystemLog("[messageSendTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
throw new RuntimeException("messageSendTimeOut : Expired ... ... ... ... ... ... ...");
|
||||
}
|
||||
int recvCount = socketChannel.read(recvBuffer);
|
||||
if (recvCount == -1) {
|
||||
saveSystemLog("[MESSAGE SEND] [FAIL] [SOCKET IS CLOSED]");
|
||||
throw new RuntimeException("DELIVER ERROR");
|
||||
} else if (recvCount > 0) {
|
||||
worker.updateToDeliver(data.getMsgId());
|
||||
setDeliverMsgId(data.getMsgId());
|
||||
// worker.updateToDeliver(data.getMsgId());
|
||||
saveSystemLog("[MESSAGE SEND] [SUCCESS]");
|
||||
lastPacketSendTime = System.currentTimeMillis();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
saveSystemLog("ERROR [" + e.getMessage() + "]");
|
||||
saveSystemLog("ERROR DETAIL");
|
||||
saveSystemLog(e.toString());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void katMessageService(MunjaonMsg data) {
|
||||
try {
|
||||
/* 이미지 경로 디폴트 경로 사용 여부 */
|
||||
String defaultYn = getProp("KAKAO", "DEFAULT_PATH_YN");
|
||||
/* Kakao Json 저장 경로 */
|
||||
String path = System.getProperty("ROOTPATH") + File.separator + "kakaofile" + File.separator;
|
||||
String path = null;
|
||||
if ("Y".equals(defaultYn)) {
|
||||
path = System.getProperty("ROOTPATH") + File.separator + "kakaofile" + File.separator;
|
||||
} else {
|
||||
path = getProp("KAKAO", "FILEPATH") + File.separator;
|
||||
}
|
||||
/* 공통 메시지 유효성 체크 */
|
||||
int checkCommonCode = MessageCheckUtil.validateMessageForCommon(data);
|
||||
int checkMsgCode = MessageCheckUtil.validateMessageForKakao(data);
|
||||
@ -426,29 +483,43 @@ public class CollectClientService extends Service {
|
||||
byteBuffers[1] = fileBuffer;
|
||||
|
||||
socketChannel.write(byteBuffers);
|
||||
|
||||
long MSG_SEND_TIME = System.currentTimeMillis();
|
||||
while (true) {
|
||||
if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) {
|
||||
saveSystemLog("[messageSendTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
throw new RuntimeException("messageSendTimeOut : Expired ... ... ... ... ... ... ...");
|
||||
}
|
||||
int recvCount = socketChannel.read(recvBuffer);
|
||||
if (recvCount == -1) {
|
||||
saveSystemLog("[MESSAGE SEND] [FAIL] [SOCKET IS CLOSED]");
|
||||
throw new RuntimeException("DELIVER ERROR");
|
||||
} else if (recvCount > 0) {
|
||||
worker.updateToDeliver(data.getMsgId());
|
||||
setDeliverMsgId(data.getMsgId());
|
||||
// worker.updateToDeliver(data.getMsgId());
|
||||
saveSystemLog("[MESSAGE SEND] [SUCCESS]");
|
||||
lastPacketSendTime = System.currentTimeMillis();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
saveSystemLog("ERROR [" + e.getMessage() + "]");
|
||||
saveSystemLog("ERROR DETAIL");
|
||||
saveSystemLog(e.toString());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void kftMessageService(MunjaonMsg data) {
|
||||
try {
|
||||
/* 이미지 경로 디폴트 경로 사용 여부 */
|
||||
String defaultYn = getProp("KAKAO", "DEFAULT_PATH_YN");
|
||||
/* Kakao Json 저장 경로 */
|
||||
String path = System.getProperty("ROOTPATH") + File.separator + "kakaofile" + File.separator;
|
||||
String path = null;
|
||||
if ("Y".equals(defaultYn)) {
|
||||
path = System.getProperty("ROOTPATH") + File.separator + "kakaofile" + File.separator;
|
||||
} else {
|
||||
path = getProp("KAKAO", "FILEPATH") + File.separator;
|
||||
}
|
||||
/* 공통 메시지 유효성 체크 */
|
||||
int checkCommonCode = MessageCheckUtil.validateMessageForCommon(data);
|
||||
int checkMsgCode = MessageCheckUtil.validateMessageForKakao(data);
|
||||
@ -488,21 +559,28 @@ public class CollectClientService extends Service {
|
||||
byteBuffers[1] = fileBuffer;
|
||||
|
||||
socketChannel.write(byteBuffers);
|
||||
|
||||
long MSG_SEND_TIME = System.currentTimeMillis();
|
||||
while (true) {
|
||||
if (System.currentTimeMillis() - MSG_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) {
|
||||
saveSystemLog("[messageSendTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
throw new RuntimeException("messageSendTimeOut : Expired ... ... ... ... ... ... ...");
|
||||
}
|
||||
int recvCount = socketChannel.read(recvBuffer);
|
||||
if (recvCount == -1) {
|
||||
saveSystemLog("[MESSAGE SEND] [FAIL] [SOCKET IS CLOSED]");
|
||||
throw new RuntimeException("DELIVER ERROR");
|
||||
} else if (recvCount > 0) {
|
||||
worker.updateToDeliver(data.getMsgId());
|
||||
setDeliverMsgId(data.getMsgId());
|
||||
// worker.updateToDeliver(data.getMsgId());
|
||||
saveSystemLog("[MESSAGE SEND] [SUCCESS]");
|
||||
lastPacketSendTime = System.currentTimeMillis();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
saveSystemLog("ERROR [" + e.getMessage() + "]");
|
||||
saveSystemLog("ERROR DETAIL");
|
||||
saveSystemLog(e.toString());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
@ -517,7 +595,12 @@ public class CollectClientService extends Service {
|
||||
try {
|
||||
saveSystemLog("[LINK_CHECK SEND] [... ...]");
|
||||
socketChannel.write(LinkCheck.makeLinkCheckBuffer());
|
||||
long LINK_SEND_TIME = System.currentTimeMillis();
|
||||
while (true) {
|
||||
if (System.currentTimeMillis() - LINK_SEND_TIME >= Packet.LIMIT_PACKET_SEND_TIMEOUT) {
|
||||
saveSystemLog("[LinkcheckTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
throw new RuntimeException("LinkcheckTimeOut : Expired ... ... ... ... ... ... ...");
|
||||
}
|
||||
int recvCount = socketChannel.read(recvBuffer);
|
||||
if (recvCount == -1) {
|
||||
saveSystemLog("[LINK_CHECK SEND] [FAIL] [SOCKET IS CLOSED]");
|
||||
@ -529,6 +612,9 @@ public class CollectClientService extends Service {
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
saveSystemLog("ERROR [" + e.getMessage() + "]");
|
||||
saveSystemLog("ERROR DETAIL");
|
||||
saveSystemLog(e.toString());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,11 +78,19 @@ public class ReportClientService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkTimeOut() {
|
||||
return System.currentTimeMillis() - lastPacketSendTime >= Packet.LIMIT_PACKET_TIMEOUT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doService() {
|
||||
bind();
|
||||
while (isRun()) {
|
||||
try {
|
||||
if (checkTimeOut()) {
|
||||
saveSystemLog("[checkTimeOut : Expired ... ... ... ... ... ... ...]");
|
||||
break;
|
||||
};
|
||||
messageService();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
@ -94,8 +102,9 @@ public class ReportClientService extends Service {
|
||||
ByteBuffer sendBuffer = Bind.makeBindBuffer(id, pwd);
|
||||
ByteBuffer recvBuffer = ByteBuffer.allocate(Header.HEADER_LENGTH + Bind.BIND_ACK_BODY_LENGTH);
|
||||
try {
|
||||
saveSystemLog("sendBuffer " + sendBuffer.position() + ":" + sendBuffer.limit());
|
||||
// saveSystemLog("sendBuffer " + sendBuffer.position() + ":" + sendBuffer.limit());
|
||||
saveSystemLog("Bind Try Connect to " + this.address + ":" + this.port);
|
||||
Thread.sleep(300);
|
||||
socketChannel.write(sendBuffer);
|
||||
saveSystemLog("Bind Read to " + this.address + ":" + this.port);
|
||||
while (true) {
|
||||
@ -173,6 +182,7 @@ public class ReportClientService extends Service {
|
||||
saveSystemLog("Report : " + data.toString());
|
||||
worker.updateToReport(data);
|
||||
socketChannel.write(Report.makeReportAckBuffer());
|
||||
lastPacketSendTime = System.currentTimeMillis();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -184,6 +194,7 @@ public class ReportClientService extends Service {
|
||||
try {
|
||||
saveSystemLog("LinkCheck Received");
|
||||
socketChannel.write(LinkCheck.makeLinkCheckAckBuffer());
|
||||
lastPacketSendTime = System.currentTimeMillis();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
@ -131,6 +131,8 @@ public abstract class Service extends Thread {
|
||||
}
|
||||
} finally {
|
||||
if(logger != null) { logger.close(); logger = null; }
|
||||
/* Exception 발생 대비 자원 해제 */
|
||||
releaseResources();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,10 @@ spring:
|
||||
profiles:
|
||||
default: local
|
||||
|
||||
logging:
|
||||
level:
|
||||
root: info
|
||||
|
||||
agent:
|
||||
root-path: ${SERVICE_HOME}
|
||||
server-property-file: ${SERVICE_HOME}/config/munjaonAgent.conf
|
||||
@ -1,80 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<timestamp key="BY_DATE" datePattern="yyyy-MM-dd"/>
|
||||
<property name="LOG_PATTERN"
|
||||
value="[%d{yyyy-MM-dd HH:mm:ss}:%-4relative] %green([%thread]) %highlight(%-5level) %boldWhite([%C.%M:%yellow(%L)]) - %msg%n%ex"/>
|
||||
<property name="CONSOLE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%thread]) %highlight([%-3level]) %logger{5} - %msg %n" />
|
||||
<property name="ROLLING_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %logger{5} - %msg %n" />
|
||||
<property name="FILE_NAME" value="../logs/agent/munjaonClient.log" />
|
||||
<property name="LOG_NAME_PATTERN" value="../logs/agent/backup/munjaonClient-%d{yyyy-MM-dd-HH-mm}.%i.log" />
|
||||
<property name="MAX_FILE_SIZE" value="100MB" />
|
||||
<property name="TOTAL_SIZE" value="3GB" />
|
||||
<property name="MAX_HISTORY" value="30" />
|
||||
|
||||
<springProfile name="local">
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<logger name="com.munjaon.client" level="DEBUG" />
|
||||
<root level="ERROR">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
<springProfile name="prod|dev">
|
||||
<appender name="FILE-INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>./log/info/info-${BY_DATE}.log</file>
|
||||
<filter class = "ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>INFO</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern> ./backup/info/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
<totalSizeCap>3GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
<!-- Console appender 설정 -->
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<Pattern>${CONSOLE_PATTERN}</Pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="FILE-WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>./log/warn/warn-${BY_DATE}.log</file>
|
||||
<filter class = "ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>WARN</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern> ./backup/warn/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
<totalSizeCap>3GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>./log/error/error-${BY_DATE}.log</file>
|
||||
<filter class = "ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<encoder>
|
||||
<pattern>${LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern> ./backup/error/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
<totalSizeCap>3GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
<appender name="ROLLING_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<encoder>
|
||||
<pattern>${ROLLING_PATTERN}</pattern>
|
||||
</encoder>
|
||||
<file>${FILE_NAME}</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${LOG_NAME_PATTERN}</fileNamePattern>
|
||||
<maxHistory>${MAX_HISTORY}</maxHistory>
|
||||
<maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
|
||||
<totalSizeCap>${TOTAL_SIZE}</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="FILE-INFO"/>
|
||||
<appender-ref ref="FILE-WARN"/>
|
||||
<appender-ref ref="FILE-ERROR"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
<logger name="jdbc" level="OFF" additive="false">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ROLLING_LOG_FILE"/>
|
||||
</logger>
|
||||
<logger name="jdbc.sqlonly" level="DEBUG" additive="false" >
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ROLLING_LOG_FILE"/>
|
||||
</logger>
|
||||
<logger name="jdbc.sqltiming" level="OFF" additive="false" >
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ROLLING_LOG_FILE"/>
|
||||
</logger>
|
||||
<logger name="org.hibernate.SQL" level="DEBUG" additive="false">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ROLLING_LOG_FILE"/>
|
||||
</logger>
|
||||
<logger name="com.munjaon.client" level="INFO" additive="true" >
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ROLLING_LOG_FILE"/>
|
||||
</logger>
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ROLLING_LOG_FILE"/>
|
||||
</root>
|
||||
</configuration>
|
||||
Loading…
Reference in New Issue
Block a user