|
|
|
|
@ -1,7 +1,11 @@
|
|
|
|
|
package externalsystem.nuri2.service.bean;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
|
|
|
|
import cokr.xit.TextFileMaker;
|
|
|
|
|
|
|
|
|
|
public abstract class Nuri2ServiceBean {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -13,4 +17,420 @@ public abstract class Nuri2ServiceBean {
|
|
|
|
|
|
|
|
|
|
public abstract String makeScriptFile(HttpServletRequest req);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public final String XMS_PORT = "20000";
|
|
|
|
|
public final String ALT_PORT = "40000";
|
|
|
|
|
public final String RCS_PORT = "40000";
|
|
|
|
|
|
|
|
|
|
public final String OUTERNAL_IP_START = "125.";
|
|
|
|
|
public final String OUTERNAL_IP_END_RCS_X = ".20";
|
|
|
|
|
public final String OUTERNAL_IP_END_RCS_O = ".25";
|
|
|
|
|
|
|
|
|
|
public final String OUTERNAL_IP_MIDDLE_DUMMY = "60.63";
|
|
|
|
|
|
|
|
|
|
public final String INTERNAL_IP_START = "10.";
|
|
|
|
|
public final String INTERNAL_IP_END = ".235";
|
|
|
|
|
|
|
|
|
|
//사용자정의컬럼
|
|
|
|
|
public final String[] customCols = {
|
|
|
|
|
"INPUT_DT varchar(14)","RES_DT varchar(14)",
|
|
|
|
|
"REQ_SYS varchar(2)", "MSG_PRPS varchar(2)", "MSG_DTL_PRPS varchar(100)",
|
|
|
|
|
"SGG_CD varchar(5)", "TASK_SE_CD varchar(3)"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String makeConfFile(HttpServletRequest req) {
|
|
|
|
|
|
|
|
|
|
String env = req.getParameter("env");
|
|
|
|
|
String sgg = req.getParameter("sgg");
|
|
|
|
|
boolean isTest = false;
|
|
|
|
|
if("test".equals(env)) {
|
|
|
|
|
isTest = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String dbName = "";
|
|
|
|
|
String dbIp = "";
|
|
|
|
|
String dbPort = "";
|
|
|
|
|
|
|
|
|
|
String dbService = req.getParameter("dbService");
|
|
|
|
|
String userSchema = req.getParameter("userSchema");
|
|
|
|
|
String dbUserId = req.getParameter("dbUserId");
|
|
|
|
|
String dbPassword = req.getParameter("dbPassword");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String xms_ip = req.getParameter("xms_ip");
|
|
|
|
|
String alt_ip = req.getParameter("alt_ip");
|
|
|
|
|
String rcs_ip = req.getParameter("rcs_ip");
|
|
|
|
|
|
|
|
|
|
String gwanriId = "";
|
|
|
|
|
String yeondongId = "";
|
|
|
|
|
String yeondongPassword = "";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if("50000".equals(sgg)) {
|
|
|
|
|
if(isTest) {
|
|
|
|
|
yeondongId = "jejudo02";
|
|
|
|
|
|
|
|
|
|
dbName = "MARIADB";
|
|
|
|
|
} else {
|
|
|
|
|
dbName = "MARIADB";
|
|
|
|
|
|
|
|
|
|
gwanriId = "jejudo01";
|
|
|
|
|
yeondongId = "jejudo03";
|
|
|
|
|
}
|
|
|
|
|
yeondongPassword = "jeju12!@";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(isTest) {
|
|
|
|
|
xms_ip = OUTERNAL_IP_START+OUTERNAL_IP_MIDDLE_DUMMY+OUTERNAL_IP_END_RCS_X;
|
|
|
|
|
alt_ip = OUTERNAL_IP_START+OUTERNAL_IP_MIDDLE_DUMMY+OUTERNAL_IP_END_RCS_X;
|
|
|
|
|
rcs_ip = OUTERNAL_IP_START+OUTERNAL_IP_MIDDLE_DUMMY+OUTERNAL_IP_END_RCS_O;
|
|
|
|
|
|
|
|
|
|
dbIp = "211.119.124.9";
|
|
|
|
|
}
|
|
|
|
|
if(isTest && (dbName.equals("MARIADB")||dbName.equals("MYSQL"))) {
|
|
|
|
|
dbPort = "4407";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String dbDriver = "";
|
|
|
|
|
String dbUrl = "";
|
|
|
|
|
switch(dbName) {
|
|
|
|
|
case "ORACLE" :
|
|
|
|
|
dbDriver = "oracle.jdbc.driver.OracleDriver";
|
|
|
|
|
dbUrl = "jdbc:oracle:thin:@"+dbIp+":"+dbPort+":"+dbService;
|
|
|
|
|
break;
|
|
|
|
|
case "MSSQL" :
|
|
|
|
|
dbDriver = "net.sourceforge.jtds.jdbc.Driver";
|
|
|
|
|
dbUrl = "jdbc:jtds:sqlserver://"+dbIp+":"+dbPort+"/"+dbService
|
|
|
|
|
+";encrypt=true;trustServerCertificate=true;useUnicode=true;characterEncoding=UTF-8";
|
|
|
|
|
break;
|
|
|
|
|
case "MYSQL" :
|
|
|
|
|
dbDriver = "com.mysql.cj.jdbc.Driver";
|
|
|
|
|
dbUrl = "jdbc:mysql://"+dbIp+":"+dbPort+"/"+dbService
|
|
|
|
|
+"?autoReconnect=true&useUnicode=true&zeroDateTimeBehavior=convertToNull&useSSL=false&characterEncoding=utf8";
|
|
|
|
|
break;
|
|
|
|
|
case "MARIADB" :
|
|
|
|
|
dbDriver = "org.mariadb.jdbc.Driver";
|
|
|
|
|
dbUrl = "jdbc:mariadb://"+dbIp+":"+dbPort+"/"+dbService
|
|
|
|
|
+"?autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
|
|
|
|
|
break;
|
|
|
|
|
case "PostgreSQL" :
|
|
|
|
|
dbDriver = "org.postgresql.Driver";
|
|
|
|
|
dbUrl = "jdbc:postgresql://"+dbIp+":"+dbPort+"/"+dbService+"?"+"currentSchema="+userSchema;
|
|
|
|
|
break;
|
|
|
|
|
case "CUBRID" :
|
|
|
|
|
dbDriver = "cubrid.jdbc.driver.CUBRIDDriver";
|
|
|
|
|
dbUrl = "jdbc:cubrid:"+dbIp+":"+dbPort+":"+dbService+":::";
|
|
|
|
|
break;
|
|
|
|
|
case "TIBERO" :
|
|
|
|
|
dbDriver = "com.tmax.tibero.jdbc.TbDriver";
|
|
|
|
|
dbUrl = "jdbc:tibero:thin:@"+dbIp+":"+dbPort+":"+dbService;
|
|
|
|
|
break;
|
|
|
|
|
case "ALTIBASE" :
|
|
|
|
|
dbDriver = "Altibase.jdbc.driver.AltibaseDriver";
|
|
|
|
|
dbUrl = "jdbc:Altibase://"+dbIp+":"+dbPort+"/"+dbService;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TextFileMaker conf = new TextFileMaker();
|
|
|
|
|
conf.addLine("# Host Info(접속정보)");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("## [XMS]문자(SMS/MMS) 서버 설정");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("xms_ip = "+xms_ip);
|
|
|
|
|
conf.addLine("xms_port = "+XMS_PORT);
|
|
|
|
|
conf.addLine("xms_id = "+yeondongId);
|
|
|
|
|
conf.addLine("xms_pwd = "+yeondongPassword);
|
|
|
|
|
conf.addLine("xms_link = ON");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("## [ALT]앱메시지(KAKAO) 서버 설정");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("alt_ip = "+alt_ip);
|
|
|
|
|
conf.addLine("alt_port = "+ALT_PORT);
|
|
|
|
|
conf.addLine("alt_id = "+yeondongId);
|
|
|
|
|
conf.addLine("alt_pwd = "+yeondongPassword);
|
|
|
|
|
conf.addLine("alt_link = ON");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("## [RCS]인증(안심)문자(SMS/MMS) 서버 설정");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("rcs_ip = "+rcs_ip);
|
|
|
|
|
conf.addLine("rcs_port = "+RCS_PORT);
|
|
|
|
|
conf.addLine("rcs_id = "+yeondongId);
|
|
|
|
|
conf.addLine("rcs_pwd = "+yeondongPassword);
|
|
|
|
|
conf.addLine("rcs_link = ON");
|
|
|
|
|
|
|
|
|
|
//DB정보
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("# 데이터베이스 정보");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
String db_name_line = "db_name = "+dbName;
|
|
|
|
|
conf.addLine(db_name_line);
|
|
|
|
|
String db_driver_line = "db_driver = "+dbDriver;
|
|
|
|
|
conf.addLine(db_driver_line);
|
|
|
|
|
String db_url_line = "db_url = "+dbUrl;
|
|
|
|
|
conf.addLine(db_url_line);
|
|
|
|
|
|
|
|
|
|
String db_userid_line = "db_userid = "+dbUserId;
|
|
|
|
|
conf.addLine(db_userid_line);
|
|
|
|
|
String db_password_line = "db_password = "+dbPassword;
|
|
|
|
|
conf.addLine(db_password_line);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("# 로그 패스: 로그파일의 위치를 변경 할 수 있지만 기본 폴더를 권장합니다.");
|
|
|
|
|
conf.addLine("log_path =");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("# 큐 패스: Que 패스 : Que파일 생성은 기본 폴더를 권장합니다.");
|
|
|
|
|
conf.addLine("que_path =");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 로그 파일 삭제 옵션 (단위 : 일 | 기본 : 90)
|
|
|
|
|
//# log_path 에 설정한 폴더에 있는 log 파일을 삭제한다.
|
|
|
|
|
//# 생략 시 90일
|
|
|
|
|
//# 해당 파일을 삭제하지 않을 시 0 로 입력
|
|
|
|
|
conf.addLine("log_file_life_time = 90");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("# 모바일메시지서비스 Agent 네트워크 통신 암호화 옵션 (AES, OFF | 기본 : AES)");
|
|
|
|
|
conf.addLine("nuri_sign = OFF");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("# 모바일메시지서비스 Agent 각 Line 별(xms, alt, rcs) 네트워크 통신 암호화 옵션 (ON, OFF | 기본 : ON)");
|
|
|
|
|
conf.addLine("# nuri_sign = AES 설정인 상태에서 전송구간 송수신 암호화 최종 사용 여부");
|
|
|
|
|
conf.addLine("xms_sign = ON");
|
|
|
|
|
conf.addLine("alt_sign = ON");
|
|
|
|
|
conf.addLine("rcs_sign = ON");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 전송 속도를 향상하기 위한 모드 변경
|
|
|
|
|
//# 이 모드를 설정하면 전송 라인이 병렬로 동작을 하게 된다.
|
|
|
|
|
//# 방화벽에서 동일한 서버로 여러 개의 Session 이 동작하는 것에 대해서 허용하도록 해야 한다.
|
|
|
|
|
conf.addLine("xms_active_socket = 1");
|
|
|
|
|
conf.addLine("alt_active_socket = 1");
|
|
|
|
|
conf.addLine("rcs_active_socket = 1");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 전송 결과값을 빠르게 받기 위한 Receiver Multi (ON, OFF | 기본 : OFF)
|
|
|
|
|
//# Receiver 가 Sender 와 Session 수량이 연결되게 동작을 하게 된다.
|
|
|
|
|
//# 방화벽에서 동일한 서버로 여러 개의 Session 이 동작하는 것에 대해서 허용하도록 해야 한다.
|
|
|
|
|
conf.addLine("receiver_multi = ON");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# Nuri2 재시작 시간 설정
|
|
|
|
|
//# 설정한 시간에 모든 프로세스를 종료 후 재기동 함.
|
|
|
|
|
//# 설정하지 않으면 재시작 하지 않음.
|
|
|
|
|
//# (0100 ~ 2400) 분 단위까지 적용 가능.
|
|
|
|
|
conf.addLine("nuri_restart_time = 0730");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# Nuri2 REPORT 결과 갱신 (ON, OFF | 기본 : ON)
|
|
|
|
|
//# NRMSG_DATA 에 결과 갱신할 값이 없으면
|
|
|
|
|
//# 현재 달과 이전 달을 LOG 테이블을 각각 조회하여 결과 갱신하는 옵션
|
|
|
|
|
conf.addLine("report_follow_update = ON");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# log 테이블 이동 모드 (BATCH, REAL | 기본 : BATCH)
|
|
|
|
|
//# BATCH : 전송 완료된 메시지를 일정 수량만큼 묶어서 처리
|
|
|
|
|
//# REAL : 전송 완료된 메시지를 실시간으로 log 테이블로 이동
|
|
|
|
|
conf.addLine("nuri_log_mode = REAL");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# log 테이블을 생성 형태 옵션 (LOG, LOG_YYYY, LOG_YYYYMM | 기본 : LOG_YYYYMM)
|
|
|
|
|
//# NRMSG_LOG_YYYYMM 형태로 여러 개를 할 것인지
|
|
|
|
|
//# NRMSG_LOG 하나로 할 것인지
|
|
|
|
|
//# LOG : log 테이블 하나만 생성함
|
|
|
|
|
//# LOG_YYYY : log 테이블을 년 별로 나누어 생성함
|
|
|
|
|
//# LOG_YYYYMM : log 테이블을 년 매월로 나누어 생성함
|
|
|
|
|
conf.addLine("nuri_log_make_mode = LOG_YYYYMM");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 결과 완료 값 log 테이블 이동 유무 설정 (ON, OFF | 기본 : ON)
|
|
|
|
|
//# 결과 수신 완료 후 NRMSG_DATA 의 값을 NRMSG_LOG_YYYYMM 테이블로 이동 유무 설정
|
|
|
|
|
conf.addLine("db_log_move = OFF");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 레포트를 기다리는 시간 (단위 : 시간 | 기본 : 82)
|
|
|
|
|
//# 이 시간이 지날 경우 더 이상 레포트를 기다리지 않고 해당레코드를 log 테이블로 이동시킨다.
|
|
|
|
|
conf.addLine("record_life_time = 82");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# Agent 의 장애 시 동작 지속 시간 추가 (단위 : 시간 | 기본 : 48)
|
|
|
|
|
//# Socket 및 DB 연결이 안 되고 장애가 발생하고 있을 때 동작 지속 시간이
|
|
|
|
|
//# 초과하면 Agent 의 기동을 모두 중지함
|
|
|
|
|
//# 생략 시 48시간
|
|
|
|
|
//# 해당 장애시간에 상관없이 계속 연결을 원할 시 0시로 입력
|
|
|
|
|
//# 예) nuri_life_time = 1 (1시간 동안만 동작을 지속하고도 장애 시 Agent 로 종료함)
|
|
|
|
|
//# nuri_life_time = 0 (장애가 있어 연결이 안 되고 있어서 Agent 의 동작을 계속 유지함)
|
|
|
|
|
conf.addLine("nuri_life_time = 48");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 사용하는 테이블의 사용자를 지정하는 옵션
|
|
|
|
|
conf.addLine("db_select_user =");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 사용하는 테이블명을 변경하는 옵션
|
|
|
|
|
//# 기존에 테이블명을 사용자가 임의의 테이블명으로 변경할 수 있다.
|
|
|
|
|
conf.addLine("db_table_name.NRMSG_DATA = nuri2_nrmsg_data");
|
|
|
|
|
conf.addLine("db_table_name.NRMSG_LOG = nuri2_nrmsg_log");
|
|
|
|
|
conf.addLine("db_table_name.NRMSG_RSLT = nuri2_nrmsg_rslt");
|
|
|
|
|
conf.addLine("db_table_name.NRMSG_DUPLEX = nuri2_nrmsg_duplex");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 사용하는 시퀀스 명을 변경하는 옵션
|
|
|
|
|
//# 기존에 시퀀스 명을 사용자가 임의의 시퀀스 명으로 변경할 수 있다.
|
|
|
|
|
conf.addLine("db_sequence_name.NRMSG_DATA = NRMSG_DATA_SEQ");
|
|
|
|
|
conf.addLine("db_sequence_name.NRMSG_RSLT = NRMSG_RSLT_SEQ");
|
|
|
|
|
conf.addLine("db_sequence_name.NRMSG_DUPLEX = NRMSG_DUPLEX_SEQ");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 데이터베이스의 사용자 필드, 사용자 인덱스 추가 가능한 총량
|
|
|
|
|
//# 필드 및 인덱스는 최대 10개만 가능하다.
|
|
|
|
|
//# 예) db_max_count = 5 <-- db_field, db_index 를 5개 이상 설정해 놓아도 5개까지만 추가가 된다.(최대 10개)
|
|
|
|
|
conf.addLine("db_max_count = 10");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 데이터베이스의 사용자 필드 추가 옵션
|
|
|
|
|
//# 생성할 필드명과 데이터 타입 및 옵션 사이엔 스페이스로 구분해 줘야 한다.
|
|
|
|
|
//# 아래 예와 같이 설정을 하면 2개의 필드가가 생성되며
|
|
|
|
|
//# 테이블 맨 마지막에 MSG_ETC1, MSG_ETC2 필드가 추가된다.
|
|
|
|
|
//# 예) db_field = MSG_ETC1 varchar(10)
|
|
|
|
|
//# db_field = MSG_ETC2 varchar(10)
|
|
|
|
|
for(String customCol : customCols) {
|
|
|
|
|
conf.addLine("db_field = "+customCol);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 데이터베이스의 사용자 인덱스 추가 옵션
|
|
|
|
|
//# 생성할 인덱스의 필드와 필드 사이는 콤마로 구분해 줘야 하며
|
|
|
|
|
//# 정렬( 오름차순:ASC, 내림차순:DESC) 도 설정할 수 있다.
|
|
|
|
|
//# 아래 예와 같이 설정을 하면 3개의 인덱스가 생성되며
|
|
|
|
|
//# 인덱스 명은 "IDX_로그테이블명_순서"로 생성이 된다.
|
|
|
|
|
//# 예) db_index = MSG_KEY
|
|
|
|
|
//# db_index = CUR_STATE DESC, REQ_DATE ASC
|
|
|
|
|
//# db_index = CALL_TO
|
|
|
|
|
conf.addLine("db_index = ");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 전송 데이터 조회 시간 (단위 : 초 | 기본 : 1)
|
|
|
|
|
conf.addLine("db_tran_term = 1");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# DBMS 의 연결 유지를 의한 조회 시간 (단위 : 초 | 기본 : 60)
|
|
|
|
|
//# 커넥션 유효 쿼리는 각 DBMS 의 테이블명 조회 방식을 사용함
|
|
|
|
|
conf.addLine("db_ping_term = 60");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 모바일메시지서비스 G/W 와 연결 상태 확인 시간 (단위 : 초 | 기본 : 50)
|
|
|
|
|
conf.addLine("ping_term = 50");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# The time when sender query to DBMS
|
|
|
|
|
//# "ORDER BY NRMSG_DATA.MSG_KEY" 사용 여부 (ON, OFF | 기본 : ON)
|
|
|
|
|
//# SELECT 시 ORDER BY NRMSG_DATA.MSG_KEY 를 사용하면
|
|
|
|
|
//# DB 서버에 부하가 약간 생기는 문제로 업체가 요청한 옵션.
|
|
|
|
|
//# OFF 하면 SELECT 시 CUR_STATE = 1의 값을 무작위로 가져오므로
|
|
|
|
|
//# 메시지 사이사이 늦게 전송되는 것이 있음.
|
|
|
|
|
//#
|
|
|
|
|
//# db_orderby : "ORDER BY NRMSG_DATA.MSG_KEY" 사용여부 (ON, OFF)
|
|
|
|
|
conf.addLine("db_orderby = ON");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 테이블, 인덱스 생성
|
|
|
|
|
conf.addLine("db_create_table = ON");
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 시퀀스생성
|
|
|
|
|
conf.addLine("db_create_sequence = ON");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# MySQL, MariaDB 전용 옵션 (MyISAM, InnoDB)
|
|
|
|
|
//# MySQL TABLE 생성 시 Engine 타입 설정
|
|
|
|
|
//# 설정 안 하면 MySQL 기본 설정에 따라 Engine Type 생성
|
|
|
|
|
//# "SELECT engine, support FROM information_schema.engines" 질의 시 support 가 default 로 되어 있는 engine
|
|
|
|
|
String storageEngine = "InnoDB";
|
|
|
|
|
if(dbName.equals("MARIADB")||dbName.equals("MYSQL")) {
|
|
|
|
|
storageEngine = "";
|
|
|
|
|
}
|
|
|
|
|
conf.addLine("db_storage_engine = "+storageEngine);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//모바일메시지서비스 Agent 각 Line 별(xms, alt, rcs) 작동 여부 (ON, OFF | 기본 : ON)
|
|
|
|
|
conf.addLine("xms_sender = ON");
|
|
|
|
|
conf.addLine("xms_receiver = OFF");
|
|
|
|
|
conf.addLine("alt_sender = ON");
|
|
|
|
|
conf.addLine("alt_receiver = OFF");
|
|
|
|
|
conf.addLine("rcs_sender = ON");
|
|
|
|
|
conf.addLine("rcs_receiver = OFF");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 메시지 타입별 CharSet
|
|
|
|
|
//# 각각의 메시지 타입별로 G/W 에 전송할 Charset 을 설정할 수 있다.
|
|
|
|
|
//# 고도화 서버는 모두 UTF-8 기본 값
|
|
|
|
|
conf.addLine("charset_sms = UTF-8");
|
|
|
|
|
conf.addLine("charset_mms = UTF-8");
|
|
|
|
|
conf.addLine("charset_alt = UTF-8");
|
|
|
|
|
conf.addLine("charset_rcs = UTF-8");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 메시지 MSG_TYPE 별 CONTENTS_TYPE_1 ~ 3
|
|
|
|
|
//# CONTENTS_TYPE_1 ~ 3 에 들어가는 전송 타입으로 KAKAO 알림톡, RCS 는 계속 추가 예정
|
|
|
|
|
conf.addLine("msg_type.SMS = SMS");
|
|
|
|
|
conf.addLine("msg_type.MMS = LMS,MMS");
|
|
|
|
|
conf.addLine("msg_type.ALT = ALT,ALI,FRT,FRI,FRW");
|
|
|
|
|
conf.addLine("msg_type.RCS = RCS,RCL,RCM,RCT,RCD,RCF,RIT");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 모바일메시지서비스 G/W 와 연결 장애 시 실패 사용 여부 (ON, OFF | 기본 : OFF)
|
|
|
|
|
//# xxx_sender = ON 인 상태에서 각 메시지 타입별 sender 에 문제가 발생했을 때 적용되는 옵션으로
|
|
|
|
|
//# 메시지 전송 시 재전송으로 입력한 경우 실패 값으로 처리하여 2번째 또는 3번째 메시지로 전송하게 한다.
|
|
|
|
|
//# 전송할 메시지의 상태 값(MSG_STATE) 6, 결과 코드(RSLT_CODE) 990 으로 모두 실패 처리
|
|
|
|
|
conf.addLine("sender_failure_switch = ON");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 하루에 한 수신번호에 보낼 수 있는 메시지 수량 (기본 : 10개)
|
|
|
|
|
//# 생략 시 10개
|
|
|
|
|
//# 0개로 세팅 시 사용 안 함
|
|
|
|
|
//# # 메시지 내용과 상관 없이 동일 폰번호에 나가는 건수.
|
|
|
|
|
conf.addLine("duplicate_phone_count = 200");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# Limit Time Zone (전송 제한 시간대 설정)
|
|
|
|
|
//# 전송 제한 시작 시간 (0100 ~ 2400) 분 단위까지 적용 가능, 생략 시 24시간 전송 가능.
|
|
|
|
|
//# 예) limit_begin = 2100
|
|
|
|
|
//# 예) limit_end = 0600
|
|
|
|
|
conf.addLine("limit_begin =");
|
|
|
|
|
conf.addLine("limit_end =");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# 현재 시간으로부터 설정 시간(RES_DATE 입력 시간) 이전 시간까지만 전송 (단위 : 시간 | 기본 : 3)
|
|
|
|
|
//# 생략 시 3시간
|
|
|
|
|
conf.addLine("before_time = 3");
|
|
|
|
|
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
//# Active / Stand By 이중화 사용 여부 (ON, OFF | 기본 : OFF)
|
|
|
|
|
//# OFF 일 경우에 동작하지 않는다.
|
|
|
|
|
//# 이중화를 사용하고 MMS 전송 시엔 NRMSG_DATA 테이블이 참조하는
|
|
|
|
|
//# XMS_FILE_NAME_1 ~ XMS_FILE_NAME_3 경로 값을 꼭 MASTER, SLAVE 서버 각각에
|
|
|
|
|
//# 동일한 경로에 저장하여 사용해야 한다.
|
|
|
|
|
//# 모듈 이중화 설정.
|
|
|
|
|
conf.addLine("duplex_switch = OFF");
|
|
|
|
|
conf.addLine("duplex_id = MASTER");
|
|
|
|
|
|
|
|
|
|
//로그레벨
|
|
|
|
|
conf.addLine(sharps);
|
|
|
|
|
conf.addLine("log 기록 범위 설정");
|
|
|
|
|
conf.addLine("DEBUG : NURI2 의 상세 로그");
|
|
|
|
|
conf.addLine("FATAL : NURI2 의 치명적 에러");
|
|
|
|
|
conf.addLine("ERROR : NURI2 가 수행 가능 정도의 에러");
|
|
|
|
|
conf.addLine("WARN : NURI2 가 시스템에 문제를 일으킬 가능성이 있을 때 사용");
|
|
|
|
|
conf.addLine("INFO : NURI2 의 정보용으로 사용");
|
|
|
|
|
conf.addLine("console.log_level = INFO");
|
|
|
|
|
conf.addLine("system.log_level = INFO");
|
|
|
|
|
|
|
|
|
|
//파일 생성
|
|
|
|
|
conf.makeTxtFile("C:\\Temp",nuri2confName,conf.getFileCn());
|
|
|
|
|
|
|
|
|
|
return "C:\\Temp" + File.separator + nuri2confName;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|