nuri2.conf 생성 수정

main
이범준 12 months ago
parent d672f4abb2
commit 868e5d4820

@ -4,6 +4,8 @@ import java.io.File;
import javax.servlet.http.HttpServletRequest;
import org.egovframe.rte.fdl.string.EgovStringUtil;
import cokr.xit.TextFileMaker;
public abstract class Nuri2ServiceBean {
@ -41,14 +43,17 @@ public abstract class Nuri2ServiceBean {
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)"
"SGG_CD varchar(5)", "TASK_SE_CD varchar(3)", "DMND_IP varchar(50)"
};
public String makeConfFile(HttpServletRequest req) {
String env = req.getParameter("env");
String ibju = req.getParameter("ibju");//국가정보자원관리원 내부망 입주 여부
String ibju = EgovStringUtil.null2void(req.getParameter("ibju"));//국가정보자원관리원 내부망 입주 여부
if(ibju.equals("")) {
ibju = "N";
}
String sgg = req.getParameter("sgg");
boolean isTest = false;
if("test".equals(env)) {
@ -58,21 +63,22 @@ public abstract class Nuri2ServiceBean {
String dbName = "";
String dbIp = "";
String dbPort = "";
dbName = req.getParameter("dbName");
dbIp = req.getParameter("dbIp");
dbPort = req.getParameter("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 dbService = "";
String userSchema = "";
String dbUserId = "";
String dbPassword = "";
dbName = EgovStringUtil.null2void(req.getParameter("dbName"));
dbIp = EgovStringUtil.null2void(req.getParameter("dbIp"));
dbPort = EgovStringUtil.null2void(req.getParameter("dbPort"));
dbService = EgovStringUtil.null2void(req.getParameter("dbService"));
userSchema = EgovStringUtil.null2void(req.getParameter("userSchema"));
dbUserId = EgovStringUtil.null2void(req.getParameter("dbUserId"));
dbPassword = EgovStringUtil.null2void(req.getParameter("dbPassword"));
String xms_ip = "";
String alt_ip = "";
String rcs_ip = "";
String X_yeondongId = "";
String A_yeondongId = "";
@ -84,69 +90,83 @@ public abstract class Nuri2ServiceBean {
String alt_port = "";
String rcs_port = "";
if(isTest) {
xms_port = XMS_PORT_TEST;
alt_port = ALT_PORT_TEST;
rcs_port = RCS_PORT_TEST;
} else {
xms_port = XMS_PORT_PROD;
alt_port = ALT_PORT_PROD;
rcs_port = RCS_PORT_PROD;
}
if("50000".equals(sgg)) {
if(isTest) {
ibju = "N";
X_yeondongId = "jejudo02";
A_yeondongId = "jejudo02";
R_yeondongId = "jejudo02";
yeondongPassword = "jeju12!@";
dbName = "MARIADB";
dbIp = "211.119.124.9";
dbPort = "4407";
dbUserId = "rentcar";
dbPassword = "xit1!";
dbService = "efccsscs";
userSchema = "";
} else {
dbName = "MARIADB";
ibju = "N";
gwanriId = "jejudo01";
//TODO: 운영에서는 연동아이디 각각
//
X_yeondongId = "jejudo03";
X_yeondongId = "???";
A_yeondongId = "???";
R_yeondongId = "???";
yeondongPassword = "jeju12!@";
dbName = "MARIADB";
dbIp = "172.25.102.124";
dbPort = "53306";
dbUserId = "rentcar";
dbPassword = "xit1!";
dbService = "efccsscs";
userSchema = "";
}
yeondongPassword = "jeju12!@";
}
}
if(isTest) {
if("Y".equals(ibju)) {
xms_ip = INTERNAL_IP_START+INTERNAL_IP___END_TEST;
alt_ip = INTERNAL_IP_START+INTERNAL_IP___END_TEST;
rcs_ip = INTERNAL_IP_START+INTERNAL_IP___END_TEST;
} else {
xms_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_TEST;
alt_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_TEST;
rcs_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_TEST;
}
} else {
if("Y".equals(ibju)) {
xms_ip = INTERNAL_IP_START+INTERNAL_IP___END_PROD_RCS_X;
alt_ip = INTERNAL_IP_START+INTERNAL_IP___END_PROD_RCS_X;
rcs_ip = INTERNAL_IP_START+INTERNAL_IP___END_PROD_RCS_O;
} else {
xms_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_PROD_RCS_X;
alt_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_PROD_RCS_X;
rcs_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_PROD_RCS_O;
}
if(X_yeondongId.equals("")) {
X_yeondongId = "입력필요";
}
if(A_yeondongId.equals("")) {
A_yeondongId = "입력필요";
}
if(R_yeondongId.equals("")) {
R_yeondongId = "입력필요";
}
if(yeondongPassword.equals("")) {
yeondongPassword = "입력필요";
}
if(isTest) {
if(isTest && EgovStringUtil.isEmpty(dbName)) {
dbName = "MARIADB";
}
if(isTest && EgovStringUtil.isEmpty(dbIp)) {
dbIp = "211.119.124.9";
}
if(isTest && (dbName.equals("MARIADB")||dbName.equals("MYSQL"))) {
if(isTest && EgovStringUtil.isEmpty(dbPort) && (dbName.equals("MARIADB")||dbName.equals("MYSQL"))) {
dbPort = "4407";
}
if(EgovStringUtil.isEmpty(dbName)) {
dbName = "입력필요";
}
if(EgovStringUtil.isEmpty(dbIp)) {
dbIp = "입력필요";
}
if(EgovStringUtil.isEmpty(dbPort)) {
dbPort = "입력필요";
}
if(EgovStringUtil.isEmpty(dbService)) {
dbService = "입력필요";
}
if(dbName.equals("PostgreSQL") && userSchema.equals("")) {
userSchema = "입력필요";
}
String dbDriver = "";
String dbUrl = "";
switch(dbName) {
@ -185,77 +205,135 @@ public abstract class Nuri2ServiceBean {
dbDriver = "Altibase.jdbc.driver.AltibaseDriver";
dbUrl = "jdbc:Altibase://"+dbIp+":"+dbPort+"/"+dbService;
break;
default :
dbDriver = "입력필요";
dbUrl = "입력필요";
}
if(isTest) {
if("Y".equals(ibju)) {
xms_ip = INTERNAL_IP_START+INTERNAL_IP___END_TEST;
alt_ip = INTERNAL_IP_START+INTERNAL_IP___END_TEST;
rcs_ip = INTERNAL_IP_START+INTERNAL_IP___END_TEST;
} else {
xms_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_TEST;
alt_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_TEST;
rcs_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_TEST;
}
} else {
if("Y".equals(ibju)) {
xms_ip = INTERNAL_IP_START+INTERNAL_IP___END_PROD_RCS_X;
alt_ip = INTERNAL_IP_START+INTERNAL_IP___END_PROD_RCS_X;
rcs_ip = INTERNAL_IP_START+INTERNAL_IP___END_PROD_RCS_O;
} else {
xms_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_PROD_RCS_X;
alt_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_PROD_RCS_X;
rcs_ip = OUTERNAL_IP_START+OUTERNAL_IP___END_PROD_RCS_O;
}
}
if(isTest) {
xms_port = XMS_PORT_TEST;
alt_port = ALT_PORT_TEST;
rcs_port = RCS_PORT_TEST;
} else {
xms_port = XMS_PORT_PROD;
alt_port = ALT_PORT_PROD;
rcs_port = RCS_PORT_PROD;
}
TextFileMaker conf = new TextFileMaker();
//#
//# XMS/ALT/RCS 테스트배드로 먼저 기능 확인 후 진행 하셔아 합니다.
//#
//# Host Info(접속정보)
//##################################################
//# * 중요 유의사항
//##################################################
//# * [개발서버:테스트]에서는 [XMS/ALT/RCS] 연동계정은 모두 같은 계정으로 설정 가능
//##################################################
//# * [개발서버:테스트]는 [XMS/ALT/RCS] 모두 [동일IP:*.235, *.20]를 사용합니다.
//# * [실서버:운영]은 [XMS/ALT]는 [동일IP:*.235, *.20], [RCS]는 [별도IP:*.246, *.25]를 사용 합니다.
//# * 연동포트 임의변경 금지! 모바일메시지 서비스에 문의 후 변경 하세요!!!
//# * 연동포트 임의변경 금지! 모바일메시지 서비스에 문의 후 변경 하세요!!!
//# * 연동포트 임의변경 금지! 모바일메시지 서비스에 문의 후 변경 하세요!!!
//# xms_port = 20000 (실운영서버: 10000 , 개발서버 : 20000)
//# alt_port = 40000 (실운영서버: 15000 , 개발서버 : 40000)
//# rcs_port = 40000 (실운영서버: 10000 , 개발서버 : 40000)
//# * 연동포트 임의변경 금지! 모바일메시지 서비스에 문의 후 변경 하세요!!!
//# * 연동포트 임의변경 금지! 모바일메시지 서비스에 문의 후 변경 하세요!!!
//# * 연동포트 임의변경 금지! 모바일메시지 서비스에 문의 후 변경 하세요!!!
//##################################################
//# * 중요 유의사항
//##################################################
conf.addLine(sharps);
conf.addLine("##########################################################################################################");
conf.addLine("#");
conf.addLine("# Nuri2 Config File");
conf.addLine("#");
conf.addLine("##########################################################################################################");
conf.addLine("#");
conf.addLine("# XMS/ALT/RCS 테스트배드로 먼저 기능 확인 후 진행 하셔아 합니다");
conf.addLine("#");
conf.addLine("# Host Info(접속정보)");
conf.addLine("");
conf.addLine("##################################################");
conf.addLine("# 중요 유의사항");
conf.addLine("##################################################");
conf.addLine("# * [개발서버:테스트]에서는 [XMS/ALT/RCS] 연동계정은 모두 같은 계정으로 설정 가능");
conf.addLine("##################################################");
conf.addLine("# * [개발서버:테스트]는 [XMS/ALT/RCS] 모두 [동일IP:*.235, *.20]를 사용합니다.");
conf.addLine("# * [실서버:운영]은 [XMS/ALT]는 [동일IP:*.235, *.20], [RCS]는 [별도IP:*.246, *.25]를 사용 합니다.");
for(int i=0;i<5;i++) {
conf.addLine("# * 연동포트 임의변경 금지! 모바일메시지 서비스에 문의 후 변경 하세요!!!");
}
conf.addLine("# xms_port = 20000 (실운영서버: 10000 , 개발서버 : 20000)");
conf.addLine("# alt_port = 40000 (실운영서버: 15000 , 개발서버 : 40000)");
conf.addLine("# rcs_port = 40000 (실운영서버: 10000 , 개발서버 : 40000)");
for(int i=0;i<5;i++) {
conf.addLine("# * 연동포트 임의변경 금지! 모바일메시지 서비스에 문의 후 변경 하세요!!!");
}
conf.addLine("# ------------------------------------------------------------------------------------");
for(int i=0;i<4;i++) {
conf.addLine("# * 기타 환경설정 변경도 문의 후 변경! 모바일메시지 서비스에 문의 후 변경 하세요!!!");
}
conf.addLine("# ------------------------------------------------------------------------------------");
conf.addLine("##################################################");
conf.addLine("# * 중요 유의사항");
conf.addLine("##################################################");
conf.addLine("");
conf.addLine("#######################");
conf.addLine("## [XMS]문자(SMS/MMS) 서버 설정");
conf.addLine(sharps);
conf.addLine("#######################");
conf.addLine("xms_ip = "+xms_ip);
conf.addLine("xms_port = "+xms_port);
conf.addLine("xms_id = "+X_yeondongId);
conf.addLine("xms_pwd = "+yeondongPassword);
conf.addLine("## 주의 : 대량발송이 아니면 무조건 OFF, 옵션을 ON으로 하더라도 국가정보관리원 확인 필요");
conf.addLine("xms_link = OFF");
conf.addLine(sharps);
conf.addLine("");
conf.addLine("#######################");
conf.addLine("## [ALT]앱메시지(KAKAO) 서버 설정");
conf.addLine(sharps);
conf.addLine("#######################");
conf.addLine("alt_ip = "+alt_ip);
conf.addLine("alt_port = "+alt_port);
conf.addLine("alt_id = "+A_yeondongId);
conf.addLine("alt_pwd = "+yeondongPassword);
conf.addLine("## 주의 : 대량발송이 아니면 무조건 OFF, 옵션을 ON으로 하더라도 국가정보관리원 확인 필요");
conf.addLine("alt_link = OFF");
conf.addLine(sharps);
conf.addLine("");
conf.addLine("#######################");
conf.addLine("## [RCS]인증(안심)문자 서버 설정");
conf.addLine(sharps);
conf.addLine("#######################");
conf.addLine("rcs_ip = "+rcs_ip);
conf.addLine("rcs_port = "+rcs_port);
conf.addLine("rcs_id = "+R_yeondongId);
conf.addLine("rcs_pwd = "+yeondongPassword);
conf.addLine("## 주의 : 대량발송이 아니면 무조건 OFF, 옵션을 ON으로 하더라도 국가정보관리원 확인 필요");
conf.addLine("rcs_link = OFF");
conf.addLine(sharps);
//모바일메시지서비스 Agent 각 Line 별(xms, alt, rcs) 작동 여부 (ON, OFF | 기본 : ON)
//송신서비스,수신서비스 사용 여부와 관계없이 통신 정보를 주고 받아야하므로 모두 ON
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 모바일메시지서비스 Agent 각 Line 별(xms, alt, rcs) 작동 여부 (ON, OFF | 기본 : ON)");
conf.addLine("# xms_sender : SMS / MMS Sender");
conf.addLine("# xms_receiver : SMS / MMS receiver");
conf.addLine("# alt_sender : KAKAO 알림톡 Sender");
conf.addLine("# alt_receiver : KAKAO 알림톡 receiver");
conf.addLine("# rcs_sender : RCS Sender");
conf.addLine("# rcs_receiver : RCS receiver");
conf.addLine("## 주의 : receiver는 메시지수신서비스와는 관계없이 게이트웨이와 통신하기 위한 옵션입니다. Sender도 송신서비스와는 관계없이 게이트웨이와 통신하기 위한 옵션입니다.");
conf.addLine("#");
conf.addLine("xms_sender = ON");
conf.addLine("xms_receiver = ON");
conf.addLine("alt_sender = ON");
conf.addLine("alt_receiver = ON");
conf.addLine("rcs_sender = ON");
conf.addLine("rcs_receiver = ON");
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 데이터베이스 유형(db_name)");
conf.addLine("# Oracle, MSSQL, MySQL, MariaDB, PostgreSQL, CUBRID, Tibero, Altibase");
conf.addLine("#");
conf.addLine("# Database Driver");
conf.addLine("#");
conf.addLine("##########################################################");
//DB정보
//##########################################################
//# 데이터베이스 정보
//##########################################################
String db_name_line = "db_name = "+dbName;
conf.addLine(db_name_line);
String db_driver_line = "db_driver = "+dbDriver;
@ -263,270 +341,324 @@ public abstract class Nuri2ServiceBean {
String db_url_line = "db_url = "+dbUrl;
conf.addLine(db_url_line);
conf.addLine("##########################################################################################################");
conf.addLine("# 데이터베이스의 계정 설정 (테이블 생성 권한 필요함)");
conf.addLine("# Oracle, MSSQL, MySQL, MariaDB, PostgreSQL, CUBRID, Tibero, Altibase 공통 사용");
conf.addLine("#");
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("##########################################################################################################");
conf.addLine("# 로그 패스: 로그파일의 위치를 변경 할 수 있지만 기본 폴더를 권장합니다.");
conf.addLine("# log file 이 기록될 디렉토리 설정 생략 시 현재 실행 디렉토리");
conf.addLine("# 예) 윈도우 => C:\\\\app\\\\nuri2\\\\nuri2_log 또는 C:/app/nuri2/nuri2_log 로 해야 디렉토리가 생성됨.");
conf.addLine("#");
conf.addLine("log_path =");
conf.addLine(sharps);
//# 큐 패스: Que 패스 : Que파일 생성은 기본 폴더를 권장합니다.
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# Que 패스 : Que파일 생성은 기본 폴더를 권장합니다.");
conf.addLine("# Nuri 내부에서 사용할 Que 저장 디렉토리");
conf.addLine("# 예) 윈도우 => C:\\\\app\\\\nuri2\\\\nuri2_que 또는 C:/app/nuri2/nuri2_que 로 해야 디렉토리가 생성됨.");
conf.addLine("#");
conf.addLine("que_path =");
conf.addLine(sharps);
//# 로그 파일 삭제 옵션 (단위 : 일 | 기본 : 90)
//# log_path 에 설정한 폴더에 있는 log 파일을 삭제한다.
//# 생략 시 90일
//# 해당 파일을 삭제하지 않을 시 0 로 입력
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 로그 파일 삭제 옵션 (단위 : 일 | 기본 : 90)");
conf.addLine("# log_path 에 설정한 폴더에 있는 log 파일을 삭제한다.");
conf.addLine("# 생략 시 90일");
conf.addLine("# 해당 파일을 삭제하지 않을 시 0 로 입력");
conf.addLine("# 예) log_file_life_time = 90 (log_path 폴더에 있는 log 파일 중 90일 이후 파일은 삭제함)");
conf.addLine("# log_file_life_time = 0 (log_path 폴더에 있는 log 파일을 삭제하지 않음)");
conf.addLine("#");
conf.addLine("log_file_life_time = 90");
conf.addLine(sharps);
//# 모바일메시지서비스 Agent 네트워크 통신 암호화 옵션 (AES, OFF | 기본 : AES)
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 모바일메시지서비스 Agent 네트워크 통신 암호화 옵션 (AES, OFF | 기본 : AES)");
conf.addLine("#----------------------------------------------");
conf.addLine("# [*][중요]기본 값 설정 권장: 임의 변경 금지, 모바일메시지 운영팀에 문의 후 변경");
conf.addLine("#----------------------------------------------");
conf.addLine("nuri_sign = OFF");
conf.addLine(sharps);
//# 모바일메시지서비스 Agent 각 Line 별(xms, alt, rcs) 네트워크 통신 암호화 옵션 (ON, OFF | 기본 : ON)
//# nuri_sign = AES 설정인 상태에서 전송구간 송수신 암호화 최종 사용 여부
conf.addLine("#----------------------------------------------");
conf.addLine("# [*][중요]기본 값 설정 권장: 임의 변경 금지, 모바일메시지 운영팀에 문의 후 변경");
conf.addLine("#----------------------------------------------");
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 모바일메시지서비스 Agent 각 Line 별(xms, alt, rcs) 네트워크 통신 암호화 옵션 (ON, OFF | 기본 : ON)");
conf.addLine("# nuri_sign = AES 설정인 상태에서 전송구간 송수신 암호화 최종 사용 여부");
conf.addLine("# xms_sign : SMS / MMS");
conf.addLine("# alt_sign : KAKAO 알림톡");
conf.addLine("# rcs_sign : RCS");
conf.addLine("#");
conf.addLine("xms_sign = ON");
conf.addLine("alt_sign = ON");
conf.addLine("rcs_sign = ON");
conf.addLine(sharps);
//# 전송 속도를 향상하기 위한 모드 변경
//# 이 모드를 설정하면 전송 라인이 병렬로 동작을 하게 된다.
//# 방화벽에서 동일한 서버로 여러 개의 Session 이 동작하는 것에 대해서 허용하도록 해야 한다.
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 전송 속도를 향상하기 위한 모드 변경");
conf.addLine("# 이 모드를 설정하면 전송 라인이 병렬로 동작을 하게 된다.");
conf.addLine("# 방화벽에서 동일한 서버로 여러 개의 Session 이 동작하는 것에 대해서 허용하도록 해야 한다.");
conf.addLine("# 예) xms_active_socket = 4 <-- SMS / MMS 전송 세션을 4개까지 늘려서 전송을 한다.(권장:5개 미만, 최대 10개)");
conf.addLine("# alt_active_socket = 3 <-- KAKAO 알림톡 전송 세션을 3개까지 늘려서 전송을 한다.(권장:5개 미만, 최대 10개)");
conf.addLine("# rcs_active_socket = 2 <-- RCS 전송 세션을 2개까지 늘려서 전송을 한다.(권장:5개 미만, 최대 10개)");
conf.addLine("#----------------------------------------------");
conf.addLine("# [*][중요]기본 값 설정 권장: 임의 변경 금지, 모바일메시지 운영팀에 문의 후 변경");
conf.addLine("#----------------------------------------------");
conf.addLine("## 주의 : 대량발송이 아니면 무조건 1, 옵션을 다른값으로 하더라도 국가정보관리원 확인 필요");
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("#----------------------------------------------");
conf.addLine("# [*][중요]기본 값 설정 권장: 임의 변경 금지, 모바일메시지 운영팀에 문의 후 변경");
conf.addLine("#----------------------------------------------");
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 전송 결과값을 빠르게 받기 위한 Receiver Multi (ON, OFF | 기본 : OFF)");
conf.addLine("# Receiver 가 Sender 와 Session 수량이 연결되게 동작을 하게 된다.");
conf.addLine("# 방화벽에서 동일한 서버로 여러 개의 Session 이 동작하는 것에 대해서 허용하도록 해야 한다.");
conf.addLine("#----------------------------------------------");
conf.addLine("# [*][중요]기본 값 설정 권장: 임의 변경 금지, 모바일메시지 운영팀에 문의 후 변경");
conf.addLine("#----------------------------------------------");
conf.addLine("## 주의 : 대량발송이 아니면 무조건 OFF, 옵션을 ON으로 하더라도 국가정보관리원 확인 필요");
conf.addLine("receiver_multi = OFF");
conf.addLine(sharps);
//# Nuri2 재시작 시간 설정
//# 설정한 시간에 모든 프로세스를 종료 후 재기동 함.
//# 설정하지 않으면 재시작 하지 않음.
//# (0100 ~ 2400) 분 단위까지 적용 가능.
conf.addLine("#----------------------------------------------");
conf.addLine("# [*][중요]기본 값 설정 권장: 임의 변경 금지, 모바일메시지 운영팀에 문의 후 변경");
conf.addLine("#----------------------------------------------");
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# Nuri2 재시작 시간 설정");
conf.addLine("# 설정한 시간에 모든 프로세스를 종료 후 재기동 함.");
conf.addLine("# 설정하지 않으면 재시작 하지 않음.");
conf.addLine("# (0100 ~ 2400) 분 단위까지 적용 가능.");
conf.addLine("#");
conf.addLine("nuri_restart_time = 0730");
conf.addLine(sharps);
//# Nuri2 REPORT 결과 갱신 (ON, OFF | 기본 : ON)
//# NRMSG_DATA 에 결과 갱신할 값이 없으면
//# 현재 달과 이전 달을 LOG 테이블을 각각 조회하여 결과 갱신하는 옵션
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# Nuri2 REPORT 결과 갱신 (ON, OFF | 기본 : ON)");
conf.addLine("# NRMSG_DATA 에 결과 갱신할 값이 없으면");
conf.addLine("# 현재 달과 이전 달을 LOG 테이블을 각각 조회하여 결과 갱신하는 옵션");
conf.addLine("#");
conf.addLine("report_follow_update = ON");
conf.addLine(sharps);
//# log 테이블 이동 모드 (BATCH, REAL | 기본 : BATCH)
//# BATCH : 전송 완료된 메시지를 일정 수량만큼 묶어서 처리
//# REAL : 전송 완료된 메시지를 실시간으로 log 테이블로 이동
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# log 테이블 이동 모드 (BATCH, REAL | 기본 : BATCH)");
conf.addLine("# BATCH : 전송 완료된 메시지를 일정 수량만큼 묶어서 처리");
conf.addLine("# 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("");
conf.addLine("##########################################################################################################");
conf.addLine("# log 테이블을 생성 형태 옵션 (LOG, LOG_YYYY, LOG_YYYYMM | 기본 : LOG_YYYYMM)");
conf.addLine("# NRMSG_LOG_YYYYMM 형태로 여러 개를 할 것인지");
conf.addLine("# NRMSG_LOG 하나로 할 것인지");
conf.addLine("# LOG : log 테이블 하나만 생성함");
conf.addLine("# LOG_YYYY : log 테이블을 년 별로 나누어 생성함");
conf.addLine("# 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("");
conf.addLine("##########################################################################################################");
conf.addLine("# 결과 완료 값 log 테이블 이동 유무 설정 (ON, OFF | 기본 : ON)");
conf.addLine("# 결과 수신 완료 후 NRMSG_DATA 의 값을 NRMSG_LOG_YYYYMM 테이블로 이동 유무 설정");
conf.addLine("db_log_move = OFF");
conf.addLine(sharps);
//# 레포트를 기다리는 시간 (단위 : 시간 | 기본 : 82)
//# 이 시간이 지날 경우 더 이상 레포트를 기다리지 않고 해당레코드를 log 테이블로 이동시킨다.
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 레포트를 기다리는 시간 (단위 : 시간 | 기본 : 82)");
conf.addLine("# 이 시간이 지날 경우 더 이상 레포트를 기다리지 않고 해당레코드를 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("");
conf.addLine("##########################################################################################################");
conf.addLine("# Agent 의 장애 시 동작 지속 시간 추가 (단위 : 시간 | 기본 : 48)");
conf.addLine("# Socket 및 DB 연결이 안 되고 장애가 발생하고 있을 때 동작 지속 시간이");
conf.addLine("# 초과하면 Agent 의 기동을 모두 중지함");
conf.addLine("# 생략 시 48시간");
conf.addLine("# 해당 장애시간에 상관없이 계속 연결을 원할 시 0시로 입력");
conf.addLine("# 예) 1 : (1시간 동안만 동작을 지속하고도 장애 시 Agent 로 종료함)");
conf.addLine("# 0 : (장애가 있어 연결이 안 되고 있어서 Agent 의 동작을 계속 유지함)");
conf.addLine("nuri_life_time = 48");
conf.addLine(sharps);
//# 사용하는 테이블의 사용자를 지정하는 옵션
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 사용하는 테이블의 사용자를 지정하는 옵션");
conf.addLine("db_select_user =");
conf.addLine(sharps);
//# 사용하는 테이블명을 변경하는 옵션
//# 기존에 테이블명을 사용자가 임의의 테이블명으로 변경할 수 있다.
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 사용하는 테이블명을 변경하는 옵션");
conf.addLine("# 기존에 테이블명을 사용자가 임의의 테이블명으로 변경할 수 있다.");
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("");
conf.addLine("##########################################################################################################");
conf.addLine("# 사용하는 시퀀스 명을 변경하는 옵션");
conf.addLine("# 기존에 시퀀스 명을 사용자가 임의의 시퀀스 명으로 변경할 수 있다.");
conf.addLine("db_sequence_name.NRMSG_DATA = sq_nuri2_nrmsg_data");
conf.addLine("db_sequence_name.NRMSG_RSLT = sq_nuri2_nrmsg_rslt");
conf.addLine("db_sequence_name.NRMSG_DUPLEX = sq_nuri2_nrmsg_duplex");
conf.addLine(sharps);
//# 데이터베이스의 사용자 필드, 사용자 인덱스 추가 가능한 총량
//# 필드 및 인덱스는 최대 10개만 가능하다.
//# 예) db_max_count = 5 <-- db_field, db_index 를 5개 이상 설정해 놓아도 5개까지만 추가가 된다.(최대 10개)
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 데이터베이스의 사용자 필드, 사용자 인덱스 추가 가능한 총량");
conf.addLine("# 필드 및 인덱스는 최대 10개만 가능하다.");
conf.addLine("# 예) 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)
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 데이터베이스의 사용자 필드 추가 옵션");
conf.addLine("# 생성할 필드명과 데이터 타입 및 옵션 사이엔 스페이스로 구분해 줘야 한다.");
conf.addLine("# 아래 예와 같이 설정을 하면 2개의 필드가가 생성되며");
conf.addLine("# 테이블 맨 마지막에 MSG_ETC1, MSG_ETC2 필드가 추가된다.");
conf.addLine("# 예) db_field = MSG_ETC1 varchar(10)");
conf.addLine("# 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("");
conf.addLine("##########################################################################################################");
conf.addLine("# 데이터베이스의 사용자 인덱스 추가 옵션");
conf.addLine("# 생성할 인덱스의 필드와 필드 사이는 콤마로 구분해 줘야 하며");
conf.addLine("# 정렬( 오름차순:ASC, 내림차순:DESC) 도 설정할 수 있다.");
conf.addLine("# 아래 예와 같이 설정을 하면 3개의 인덱스가 생성되며");
conf.addLine("# 인덱스 명은 \"IDX_로그테이블명_순서\"로 생성이 된다.");
conf.addLine("# 예) db_index = MSG_KEY");
conf.addLine("# db_index = CUR_STATE DESC, REQ_DATE ASC");
conf.addLine("# db_index = CALL_TO");
conf.addLine("db_index = ");
conf.addLine(sharps);
//# 데이터베이스의 전송 값의 조회시 사용할 Index Hint 명 (기본 : IDX_NRMSG_DATA_02)
//# Oracle, MSSQL, MySQL, MariaDB, PostgreSQL, CUBRID, Tibero, Altibase 중
//# Index Hint 지원 : Oracle, MSSQL, MySQL, MariaDB, Tibero, Altibase
//# Index Hint 미지원 : PostgreSQL, CUBRID
//#
//# 예) db_hint = IDX_NRMSG_DATA_02
//#
//# 대량메시지 발송시 필수 설정, 별도 힌트사용시 명칭 변경
conf.addLine("# db_hint = IDX_NRMSG_DATA_02");
conf.addLine(sharps);
//# 전송 데이터 조회 시간 (단위 : 초 | 기본 : 1)
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 데이터베이스의 전송 값의 조회시 사용할 Index Hint 명 (기본 : IDX_NRMSG_DATA_02)");
conf.addLine("# Oracle, MSSQL, MySQL, MariaDB, PostgreSQL, CUBRID, Tibero, Altibase 중");
conf.addLine("# Index Hint 지원 : Oracle, MSSQL, MySQL, MariaDB, Tibero, Altibase");
conf.addLine("# Index Hint 미지원 : PostgreSQL, CUBRID");
conf.addLine("# 예) db_hint = IDX_NRMSG_DATA_02");
conf.addLine("# 대량메시지 발송시 필수 설정, 별도 힌트사용시 명칭 변경");
conf.addLine("# db_hint = ");
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 전송 데이터 조회 시간 (단위 : 초 | 기본 : 1)");
conf.addLine("db_tran_term = 1");
conf.addLine(sharps);
//# DBMS 의 연결 유지를 의한 조회 시간 (단위 : 초 | 기본 : 60)
//# 커넥션 유효 쿼리는 각 DBMS 의 테이블명 조회 방식을 사용함
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# DBMS 의 연결 유지를 의한 조회 시간 (단위 : 초 | 기본 : 60)");
conf.addLine("# 커넥션 유효 쿼리는 각 DBMS 의 테이블명 조회 방식을 사용함");
conf.addLine("db_ping_term = 60");
conf.addLine(sharps);
//# 모바일메시지서비스 G/W 와 연결 상태 확인 시간 (단위 : 초 | 기본 : 50)
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 모바일메시지서비스 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("");
conf.addLine("##########################################################################################################");
conf.addLine("# The time when sender query to DBMS");
conf.addLine("# \"ORDER BY NRMSG_DATA.MSG_KEY\" 사용 여부 (ON, OFF | 기본 : ON)");
conf.addLine("# SELECT 시 ORDER BY NRMSG_DATA.MSG_KEY 를 사용하면");
conf.addLine("# DB 서버에 부하가 약간 생기는 문제로 업체가 요청한 옵션.");
conf.addLine("# OFF 하면 SELECT 시 CUR_STATE = 1의 값을 무작위로 가져오므로");
conf.addLine("# 메시지 사이사이 늦게 전송되는 것이 있음.");
conf.addLine("db_orderby = ON");
conf.addLine(sharps);
//# 테이블, 인덱스 생성
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# The time when create table query to DBMS");
conf.addLine("# Create Table, Create Index 체크 및 생성 사용 여부 (ON, OFF | 기본 : ON)");
conf.addLine("# ON : Create Table, Create Index 체크 및 생성 여부 사용함");
conf.addLine("# OFF : Create Table, Create Index 체크 및 생성 여부 사용 안 함");
conf.addLine("db_create_table = ON");
conf.addLine(sharps);
//# 시퀀스생성
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# The time when create table query to DBMS");
conf.addLine("# Create Sequence 체크 및 생성 사용 여부 (ON, OFF | 기본 : ON)");
conf.addLine("# ON : Create Sequence 체크 및 생성 여부 사용함");
conf.addLine("# OFF : Create Sequence 체크 및 생성 여부 사용 안함");
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
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# MySQL, MariaDB 전용 옵션 (MyISAM, InnoDB)");
conf.addLine("# MySQL TABLE 생성 시 Engine 타입 설정");
conf.addLine("# 설정 안 하면 MySQL 기본 설정에 따라 Engine Type 생성");
conf.addLine("# \"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);
//##########################################################################################################
//# 메시지 타입별 CharSet
//# 각각의 메시지 타입별로 G/W 에 전송할 Charset 을 설정할 수 있다.
//# 고도화 서버는 모두 UTF-8 기본 값
//# 이전 SMS, MMS 서버는 EUC-KR
//#----------------------------------------------
//# EUC-KR UTF-8, UTF8, euckr, ISO-8859-1(ISO 8859)
//# DB마다 다름 : euckr, euc_kr, eucksc 으로 명칭이 틀릴경우 EUC-KR로 사용.
//# 한글이 깨지는 경우 아래와 같이 설정도 가능
//# CUBRID : charset_xxx = ko_KR.utf8
//# TIBERO : charset_xxx = EUC-KR
//#----------------------------------------------
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 메시지 타입별 CharSet");
conf.addLine("# 각각의 메시지 타입별로 G/W 에 전송할 Charset 을 설정할 수 있다.");
conf.addLine("# 고도화 서버는 모두 UTF-8 기본 값");
conf.addLine("# 이전 SMS, MMS 서버는 EUC-KR");
conf.addLine("#----------------------------------------------");
conf.addLine("# EUC-KR UTF-8, UTF8, euckr, ISO-8859-1(ISO 8859)");
conf.addLine("# DB마다 다름 : euckr, euc_kr, eucksc 으로 명칭이 틀릴경우 EUC-KR로 사용.");
conf.addLine("# 한글이 깨지는 경우 아래와 같이 설정도 가능");
conf.addLine("# CUBRID : charset_xxx = ko_KR.utf8");
conf.addLine("# TIBERO : charset_xxx = EUC-KR");
conf.addLine("#----------------------------------------------");
conf.addLine("# [*][중요]기본 값 설정 권장: 임의 변경 금지, 모바일메시지 운영팀에 문의 후 변경");
conf.addLine("#----------------------------------------------");
conf.addLine("charset_sms = EUC-KR");
conf.addLine("charset_mms = EUC-KR");
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("#----------------------------------------------");
conf.addLine("# [*][중요]기본 값 설정 권장: 임의 변경 금지, 모바일메시지 운영팀에 문의 후 변경");
conf.addLine("#----------------------------------------------");
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 메시지 MSG_TYPE 별 CONTENTS_TYPE_1 ~ 3");
conf.addLine("# CONTENTS_TYPE_1 ~ 3 컬럼에 들어가는 전송 타입으로 KAKAO 알림톡, RCS 는 계속 추가 예정");
conf.addLine("# MSG_TYPE_1 ~ 3 : SMS 이면 CONTENTS_TYPE_1 ~ 3 : SMS 만 입력");
conf.addLine("# MSG_TYPE_1 ~ 3 : MMS 이면 CONTENTS_TYPE_1 ~ 3 : LMS,MMS 만 입력");
conf.addLine("# MSG_TYPE_1 ~ 3 : ALT 이면 CONTENTS_TYPE_1 ~ 3 : ALT,ALI,FRT,FRI,FRW 만 입력");
conf.addLine("# MSG_TYPE_1 ~ 3 : RCS 이면 CONTENTS_TYPE_1 ~ 3 : RCS,RCL,RCM,RCT,RCD,RCF,RIT 만 입력");
conf.addLine("#");
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번째 메시지로 전송하게 한다.
//# OFF : 전송할 메시지의 상태 값(MSG_STATE) 6, 결과 코드(RSLT_CODE) 990 으로 모두 실패 처리
//# ON : 2번째 또는 3번째 메시지로 전송.
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 모바일메시지서비스 G/W 와 연결 장애 시 실패 사용 여부 (ON, OFF | 기본 : OFF)");
conf.addLine("# xxx_sender = ON 인 상태에서 각 메시지 타입별 sender 에 문제가 발생했을 때 적용되는 옵션으로");
conf.addLine("# 메시지 전송 시 재전송으로 입력한 경우 실패 값으로 처리하여 2번째 또는 3번째 메시지로 전송하게 한다.");
conf.addLine("# OFF : 전송할 메시지의 상태 값(MSG_STATE) 6, 결과 코드(RSLT_CODE) 990 으로 모두 실패 처리");
conf.addLine("# ON : 2번째 또는 3번째 메시지로 전송.");
conf.addLine("sender_failure_switch = ON");
conf.addLine(sharps);
//# 하루에 한 수신번호에 보낼 수 있는 메시지 수량 (기본 : 10개)
//# 생략 시 10개
//# 0개로 세팅 시 사용 안 함
//# # 메시지 내용과 상관 없이 동일 폰번호에 나가는 건수.
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 하루에 한 수신번호에 보낼 수 있는 메시지 수량 (기본 : 10개)");
conf.addLine("# 생략 시 10개");
conf.addLine("# 0개로 세팅 시 사용 안 함");
conf.addLine("# 메시지 내용과 상관 없이 동일 폰번호에 나가는 건수.");
conf.addLine("duplicate_phone_count = 200");
conf.addLine(sharps);
//# Limit Time Zone (전송 제한 시간대 설정)
//# 전송 제한 시작 시간 (0100 ~ 2400) 분 단위까지 적용 가능, 생략 시 24시간 전송 가능.
//# 예) limit_begin = 2100
//# 예) limit_end = 0600
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# Limit Time Zone (전송 제한 시간대 설정)");
conf.addLine("# 전송 제한 시작 시간 (0100 ~ 2400) 분 단위까지 적용 가능, 생략 시 24시간 전송 가능.");
conf.addLine("limit_begin =");
conf.addLine("limit_end =");
conf.addLine(sharps);
//# 현재 시간으로부터 설정 시간(RES_DATE 입력 시간) 이전 시간까지만 전송 (단위 : 시간 | 기본 : 3)
//# 생략 시 3시간
conf.addLine("");
conf.addLine("##########################################################################################################");
conf.addLine("# 현재 시간으로부터 설정 시간(RES_DATE 입력 시간) 이전 시간까지만 전송 (단위 : 시간 | 기본 : 3)");
conf.addLine("# 생략 시 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("");
conf.addLine("##########################################################################################################");
conf.addLine("# Active / Stand By 이중화 사용 여부 (ON, OFF | 기본 : OFF)");
conf.addLine("# OFF 일 경우에 동작하지 않는다.");
conf.addLine("# 이중화를 사용하고 MMS 전송 시엔 NRMSG_DATA 테이블이 참조하는");
conf.addLine("# XMS_FILE_NAME_1 ~ XMS_FILE_NAME_3 경로 값을 꼭 MASTER, SLAVE 서버 각각에");
conf.addLine("# 동일한 경로에 저장하여 사용해야 한다.");
conf.addLine("# 모듈 이중화 설정.");
conf.addLine("# 부팅이 느려짐");
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("");
conf.addLine("##########################################################################################################");
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("#");
conf.addLine("console.log_level = INFO");
conf.addLine("system.log_level = INFO");

@ -35,14 +35,6 @@
<br/>
유저스키마<input type="text" name="userSchema" />
<br/>
<br/>
<strong>게이트웨이</strong><br/>
xms게이트웨이ip<input type="text" name="xms_ip" />
<br/>
알림톡게이트웨이ip<input type="text" name="alt_ip" />
<br/>
RCS게이트웨이ip<input type="text" name="rcs_ip" />
<br/>
</form>

@ -24,13 +24,13 @@
<br/>
<strong>신청일자 범위</strong>(고장신고접수)<br/>
<input type="text" name="sincheongFrom" maxlength="8" size="8" required placeholder="일자(8자리)" />부터
<input type="text" name="sincheongTo" maxlength="8" size="8" required placeholder="일자(8자리)" />까지
<input type="text" name="sincheongFrom" maxlength="8" size="8" required placeholder="일자(8자리)" value="20241201" />부터
<input type="text" name="sincheongTo" maxlength="8" size="8" required placeholder="일자(8자리)" value="20241226" />까지
<br/>
<strong>입차시간 범위</strong>(단속기 이동주차)<br/>
<input type="text" name="ibchaFrom" maxlength="14" size="14" required placeholder="일시(14자리)" />부터
<input type="text" name="ibchaTo" maxlength="14" size="14" required placeholder="일시(14자리)" />까지
<input type="text" name="ibchaFrom" maxlength="14" size="14" required placeholder="일시(14자리)" value="20241201000000" />부터
<input type="text" name="ibchaTo" maxlength="14" size="14" required placeholder="일시(14자리)" value="20241226160000" />까지
<br />
<strong>요청데이터 건수</strong><br/>
@ -40,8 +40,25 @@
<br/>
<button type="button" id="btnSend--${pageName}">발송</button>
<div class="toast-container position-fixed bottom-0 end-0 p-3">
<div id="toast${pageName}" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-body bg-black text-white">
완료
</div>
</div>
</div>
</div>
<script>
toast${pageName} = null;
$(document).ready(function(){
toast${pageName} = new bootstrap.Toast(document.getElementById("toast${pageName}"), {
animation: true,
autohide: true
});
});
$("#btnSend--${pageName}").on("click",function(){
var formFields = new FormFields("#frm--${pageName}");
@ -97,6 +114,7 @@ $("#btnSend--${pageName}").on("click",function(){
url : "/mms/sendMobileMessage.do",
data : data,
success: (resp) => {
toast${pageName}.show();
},
error : function(xhr, status, error) {
},

Loading…
Cancel
Save