=====================================================================
 
EMMA3 version 3.7.0 released on 2023-02-03
Copyright (C) 1995-2023 INFOBANK CORP.  All rights reserved.  
 
No part of this product may be reproduced in any form 
or by any means without written permission from:
 
INFOBANK CORP.
12th floor, Uspace1 A-dong, 660, Daewangpangyo-ro Bundang-gu Seongnam-si, Gyeonggi-do, Korea

=====================================================================

This file contains a EMMA V.3 product history.  It includes lists 
of new features, changes, and bug fixes sorted by release.  For a 
product description, installation notes, registration information,
and contact information, please refer to readme.txt (downloaded 
with this installation).

Changes in EMMA 3.7.1 (Release) -- May 02, 2023
---------------------------------------------------------------------

New features:

  - 발신자 식별코드 DB 요청 테이블 추가
      + 발송 요청건별 식별코드 처리 기능
      + 발송 테이블에 origin_cid 컬럼 추가
  - MMO 데이터용 파일큐의 대량 처리 기능
      + 순환식 멀티큐 구현(파일큐 10개, IBMultiCircularFlexNIOQue 라이브러리)
  - MO 데이터 DB 병렬 처리 기능
      + modistributor procss의 개수 설정
      + process.cnt.modistributor = 1 (emma.cf 설정 파일)
  - MT 리포트 DB 병렬 처리 기능
      + mtdistributor procss의 개수 설정
      + process.cnt.mtdistributor = 1 (emma.cf 설정 파일)

Changes in EMMA 3.7.0 (Release) -- Feb 03, 2023
---------------------------------------------------------------------

New features:

  - 국제발송 DLR 리포트 추가
  	  + DLR_REPORT_PDU 추가 
  	  + receiver, distributor 수정
      + 프로시저 수정
  - 발신번호 식별코드 설정 추가
      + emma.cf에 origin.cid 프로퍼티 사용(9자리)
      + PDU TC_ORIGIN_COMANY_ID 태그코드 추가

Bug fixes:

  - 중복발송 보완
  	  + DupMsgCheckerFactory singleton 중복생성 버그 보완
  	  + DupMsgChecker MultiHashMap을 Hashmap으로 변경, map의 key값을 recipientNum + "^" + content의 hashCode로 변경
  	  + RCSDBHandler dupchecker.put 위치 수정(dup exception 발생 시 put 하지 않도록)
  - sybase 테이블 comment 삭제
  
Changes in EMMA 3.6.6 (Release) -- May 03, 2022
---------------------------------------------------------------------

New features:

  - MT_PR을 메시지키로 사용(MSG_KEY 사용 제거)
  - 리포트 건별 log move 처리
      + TranDeleter worker 추가, LogTransfer worker 삭제
      + rslt_updae 프로시저에서 로그 이동 처리
      + log_move 프로시저 삭제
  - 발송 큐 사이즈 체크 기능(2G 초과 방지)
  - GW 리포트 처리 AES256 암호화 연동 개선
  - 프로세스 로그 추가 보완
      + Collector : 등록시간, 쿼리 소요시간 로그, 첨부파일 발송 소요시간, 큐 사이즈 로그
      + Distributor : 클라이언트 키, 큐 사이즈, 쿼리 소요시간 로그
  - 프로시저 개선
      + tran_select : regdate 추가
      + logtable 이동용 temp 테이블 삭제
      + 오라클(USERS)/티베로(USR) 프로시저 디폴트 Tablespace 변경
      + EM_MO_TRAN 테이블 삭제
  - 설정 파일 변경
      + process.use.logtransfer(emma.cf) 제거
      + process.use.trandeleter(emma.cf) 추가
  - DB Connection 유지를 위한 유효성 쿼리 수행 설정 기능
      + MODistributor 추가
  - logback 라이브러러 버전업
      + 1.2.3 -> 1.2.9
  - 파일큐 라이브러리 개선
      + FileBuf 사용 제거
      + ClosedChannelException 발생시, 재오픈 로직 추가
      + getFromHeadInspector 사용 제거

Bug fixes:

  - MTRPTReceiver emmaTag nullPointerException 예외 처리
  - setEmmaTag에 누락된 client_sub_id 추가
  - Active-Standby 전환시, 잔여 큐 데이터 처리
  


Changes in EMMA 3.6.5 (Release) -- May 07, 2021
---------------------------------------------------------------------

New features:

  - 시스템 로그 정보 출력

Bug fixes:

  - 스팸처리 보완
      + 잘못된 정규식에 대한 예외 처리
  - MTRPTReceive emmaTag nullPointerException 예외 처리(2022/03/15)
  - GW 리포트 처리 AES256 암호화 연동 개선(2022/03/15)
  
  
Changes in EMMA 3.6.4 (Release) -- Nov 20, 2020
---------------------------------------------------------------------

New features:

  - emma, ibpdu, ibframe jar 라이브러리 통합
  - DB2 프로시저 개선
  - DBHandler에서 DB addBatch 처리
  - worker에서 예외에 대해 RootCause로 출력하도록 개선 

Bug fixes:

  - 동보 TRAN 삭제 관련 프로시저 수정(casting문제, 풀스캔 해결)
  - 티베로 log_move_past 수행쿼리 누락 수정


Changes in EMMA 3.6.3 (Release) -- Dec 16, 2019
---------------------------------------------------------------------

New features:

  - Infobank G/W 시스템 통합 전환으로 인한 국제 발송 G/W 정보 삭제
    + EMMA 설치 파일 및 설치 매뉴얼 내용 수정
  - EMMA 설치 진행 시 국내 발송일 때와 국제 발송일 때의 문자셋 선택 설정 추가
    + 국내 발송일 경우 "Domestic Message(EUC-KR)" 선택
    + 국제 발송일 경우 "International Message(UTF-8)" 선택

Bug fixes:

  - N/A


Changes in EMMA 3.6.2 (Release) -- Jun 20, 2019
---------------------------------------------------------------------

New features:

  - 중복발송 차단 체크 설정 시 표기되는 log 문구 통일화
    + 단건 발송 시 중복발송 차단되는 건의 mt_pr 값 표기
    + 동보 발송 시 중복발송 차단되는 건의 mt_pr, mt_seq 값 표기 

Bug fixes:

  - Mssql 프로시저 개선
    + 이중화 발송 시 Deadlock 발생 최소화를 위한 로직 개선
  - Mssql 프로시저 오류 수정
    + 로그 테이블로의 데이터 이동 시 PK 중복 오류 수정
  - PostgreSQL 프로시저 오류 수정
    + 프로시저 파라메터로 NULL 값이 유입되는 경우 무한으로 ERROR가 발생되는 오류 수정


Changes in EMMA 3.6.1 (Release) -- May 07, 2019
---------------------------------------------------------------------

New features:

  - JRE를 포함하여 배포되는 EMMA 설치 파일의 withJRE 버전을 1.6 -> 1.8 로 업그레이드
  - userCallback(사용자 함수)에서 수신자번호 로그 표출 시 마스킹처리가 가능하도록 기능 추가
    + 가운데 네 자리 마스킹 처리 : StringUtil.getMaskingPersonalInfo(recipientNum);
  - DB count 가 2개 이상일 경우 표기되는 log 문구 통일화
    + 예시 : ETAG={"Db Index":"0"}, ETAG={"Db Index":"1"}

Bug fixes:

  - 중복발송 차단 체크 기능 버그 수정
    + Duplication Check 기능이 간헐적으로 동작되지 않는 현상이 있어 라이브러리 교체 및 로직 수정을 통해 현상 해결
    + google-collect-snapshot-20080820.jar -> guava-20.0.jar 로 변경
  - MTDistributor Thread 비정상 종료 현상 버그 수정이 미적용된 DB 추가 적용
    + 적용 DB : DB2, Tibero, Sybase, PostgreSQL
  - PostgreSQL 프로시저 오류 수정
    + 콤마 오류로 인해 동보 데이터가 로그 테이블로 이동이 되지 않는 현상 수정
    + PostgreSQL 이중화 발송이 가능하도록 프로시저 수정
    + Temporary table -> Permanent table 으로 변경


Changes in EMMA 3.6.0 (Release) -- FEB 25, 2019
---------------------------------------------------------------------

New features:

  - DB Connection 유지를 위한 유효성 쿼리 수행 설정 기능 추가
    + 설정된 시간 마다 유효성 쿼리를 수행하여 session timeout 설정 등으로 인한 DB 세션 단절을 방지하고,
      지속적으로 DB connection 이 유지될 수 있도록 함
    + db.cf 설정 추가
      db.validationquerycheck = 0 (0:사용안함, 1:사용함)
      db.validationqueryinterval = 60 (유효성 쿼리 수행 시간(단위:초))
  - DB Driver 버전 업그레이드
    + MysqlDB : mysql-connector-java-5.1.45-bin.jar 로 변경
    + Oracle  : ojdbc6.jar 로 변경

Bug fixes:

  - MTDistributor Thread 비정상 종료 현상 버그 수정
    + DB 연결이 특정 사유 및 환경 설정으로 인해 단절되는 경우, MTDistributor Thread가 비정상 종료 되지 않도록 예외처리 수정
    + 적용 DB : Oracle, Mssql, Mysql, MariaDB
  - userCallback(사용자 함수) 샘플 소스 오류 수정
  - emma.cf 내 log 파일 관련 설정 내역 삭제
  - Sybase MMT 프로시저 수정
    + 중복 INDEX 명 생성 구문 수정

	
Changes in EMMA 3.5.9 (Release) -- Jan 07, 2019
---------------------------------------------------------------------

New features:

  - N/A

Bug fixes:

  - Install4j 버전 업그레이드에 따른 소스 재 빌드
    + Windows 환경에서 OpenJDK 혹은 Zulu 로 EMMA를 실행 할 경우, Install4j 버전 이슈로 인해 Java 인식 오류가 발생하여
      Install4j 버전 업그레이드를 통해 현상을 해결함.
  - logback.xml 수정
    + INFO성 로그에도 ERROR 로그가 함께 표출될 수 있도록 INFO level 수정

  
Changes in EMMA 3.5.8 (Release) -- Oct 15, 2018
---------------------------------------------------------------------

New features:

  - EMMA foreground 실행 파일 emmatest.exe 와 emmatest.sh을 추가
    + EMMA 설치 시 테스트용도로만 사용하도록 운영매뉴얼에 내용 추가.
  - log4j에서 logback 으로 logging framework 변경
  - 로그 파일에 개인 정보 마스킹 처리 기능 추가(emma.cf 설정)
    + log.use.personalinfo.hide = (0:사용안함, 1:사용, 2:마스킹 처리)
    + 2로 설정 시 수신자번호 가운데 네자리가 010-****-1234 와 같이 마스킹 처리 되도록 기능 추가.

Bug fixes:

  - Infobank g/w 최대 연속 재 연결 횟수 초과 후 프로세스가 정상적으로 종료되지 않는 현상 개선
  - MO 번호 분기처리 로직 수정
    + 1688로 시작하는 세종텔레콤 8자리 MO 번호 뿐만 아니라 기타 8자리 번호에 대해서도 모두 처리 가능하도록 수정. 
    + 기존 #, * 이 붙는 특번 혹은 013으로 시작하는 MO번호 처리 로직은 동일.
  - 사용하지 않는 테이블 삭제
    + em_resultcode 테이블 삭제 처리.
  - Mysql, MariaDB 프로시저 수정
    + 로그 이동 프로시저 내 group by 절 문법 오류 수정 
    

Changes in EMMA 3.5.7 (Release) -- Jan 01, 2018
---------------------------------------------------------------------

New features:

  - EMMA foreground 실행 파일인 emma.exe 와 emma.sh을 삭제.

Bug fixes:

  - MTSender Thread가 비정상적인 사유로 인해 종료되고 재실행 될 때
    환경 파일에 세팅된 db.count(DB 연결개수)를 가져와 정상적으로 DB연결이 될 수 있도록 수정.

Changes in EMMA 3.5.6 (Release) -- Sep 07, 2017
---------------------------------------------------------------------

New features:

  - MO 번호 분기처리 로직 추가
    + 1688로 시작하는 세종텔레콤 MO 번호가 추가되어 1688로 시작하는 MO 번호일 때와 아닐 때(#,*이 붙는 특번 혹은 013으로 시작하는 MO번호)
      분기 처리해주는 로직을 추가함.
    + 1688로 시작하는 MO가 수신 될 경우 8자리는 MO 번호로, 나머지는 EMO 번호로 처리한다.     

Bug fixes:

  - MO 수신 시 Mysql, MariaDB에서 Connection 에러가 SQLExcetion으로 발생하여 상위에서 DB 재 접속을 하지 못해
    DBException 으로 처리하도록 변경.
  - RS에 주기적으로 세션상태를 확인하기 위해 송수신 할 때(sendPing)와 RS로부터 EMMA로 MO 수신 요청이 동시에 발생하는 경우
    체크해주는 로직이 없어서 30초동안 세션이 끊기는 현상으로인해 MO 수신에 대한 지연이 발생하여 체크 로직을 추가함.
  - EMMA 이중화(active-active)로 발송 시 MariaDB, Mysql DB를 사용하는 경우,
    sp_em_smt_tran_select, sp_em_mmt_tran_select 프로시저에서 emma_id를 update 해주는 쿼리 수행 시 Deadlock이 발생함.
    + msg_status, emma_id 에 대한 결합 인덱스를 추가하고 update 쿼리문에 index hint(force index)를 추가하여 Deadlock 발생 문제를 개선함.

Changes in EMMA 3.5.5 (Release) -- June 12, 2017
---------------------------------------------------------------------

New features:

  - 050 안심번호/ 인터넷,기타 번호에 대한 착신망 정보(carrier)가 변경됨.
    -----------------------------------------------------------------------------------------------------------
	|               구분             |                      변경 전                   |         변경 후       |
    -----------------------------------------------------------------------------------------------------------
	| 050 번호                       | 10001(SKT), 10002(KT), 10003(LGU+), 10000(ETC) | 10010(Safety number)  |
    -----------------------------------------------------------------------------------------------------------
	| 인터넷, 기타 번호 (070번호, …) | 10001(SKT), 10002(KT), 10003(LGU+), 10000(ETC) | 10006(Internet number)|
    -----------------------------------------------------------------------------------------------------------
	| 일반 핸드폰 번호               | 10001(SKT), 10002(KT), 10003(LGU+)             |       변경없음        |
    -----------------------------------------------------------------------------------------------------------

Bug fixes:

  - Mysql은 Connection 에러가 SQLExcetion으로 발생하여 상위에서 DB 재 접속을 하지 못해
    DBException(MysqlCommunicationExcetion)으로 처리하도록 변경.
  - change_wordN 순서 변경 로직에서 content(메시지내용) set 방식을
    PDU 규격에 따라 content 내용 마지막에 '0'을 추가해주는 문자열 처리 관련 유틸 클래스를 호출하여 set해주도록 변경.   

Changes in EMMA 3.5.4 (Release) -- Oct 07, 2016
---------------------------------------------------------------------

New features:

  - 1개 사업자가 복수의 서명을 사용할 경우에 대한 기능 추가
	+ ① 1개의 계정에서 복수의 메시지 서명을 사용하려면 고객사에서 원하는 서명ID를 지정하여
	     인포뱅크 담당자에게 등록을 요청 한다. (최대길이 20byte)
      ② 발급 받은 서명ID는 발송 시 client_sub_id 필드에 값으로 입력 한다.
	+ client_sub_id 필드 : Sender ID, 메시지 서명을 복수로 지정하기 위한 구분자(최대길이 20byte)

  - 결과 코드 추가
    + 국가코트 '82' 일 경우, 인코딩 오류시 동보 건별  실패 처리에 대한 결과 코드 추가
    ----------------------------------------------------------------------------------------------------------
	| 구분 | 결과코드 |          내용                                                                        |
    ----------------------------------------------------------------------------------------------------------
	| 추가 |   3022   |  Charset conversion error (동보 사용시 국가코트 '82' 인 경우, 건별 인코딩 오류 처리) |
    ----------------------------------------------------------------------------------------------------------

  - MSSQL DB 프로시저
    + alias 필드명 소문자로 통일 (date_client_req, mt_pr, b_mt_pr) 

Bug fixes:

  - N/A

Changes in EMMA 3.5.3 (Release) -- May 03, 2016
---------------------------------------------------------------------

New features:

  - 메시지 내용에 %CHANGEWORD1% 을 필수로 사용하지 않아도 정상 적으로 치환 가능하도록 변경.
  
Bug fixes:

  - N/A
  
Changes in EMMA 3.5.2 (Release) -- Mar 10, 2016
---------------------------------------------------------------------

New features:

  - AES256, SEED256 적용

Bug fixes:

  - Oracle, Tibero MMTDBHandler에서 암호화 전송 가능하도록 수정
    + PduConst.CRYPTO_METHOD_NONE => EmmaController.auCryptoKeySize
    
  - bouncycastle의 Security Provider가 적용될 수 있도록 적용
  
  - UTF-8로 전송 시 동보 단어 깨짐 현상 수정

Changes in EMMA 3.5.1 (Release) -- Feb 01, 2016
---------------------------------------------------------------------

New features:

  - em_banlist(스팸차단) 테이블 내용에 대한 갱신 주기 설정
    + db.cf 설정 내역 수정 및 추가
    # em_banlist 사용 여부(0:사용안함, 1:사용함)
    #db.bancheck = 1
    # em_banlist 정보 갱신 주기(단위:초)
    db.bancheck.interval = 60
      
  - Bypass Module 사용을 위한 설정 추가
    + emma.cf 설정 내역 추가
      # Bypass 서비스 사용유무(0:사용안함, 1:사용함)
      bypass.use = 0

      # Bypass 서비스 target 주소 설정
      bypass.address0 = 127.0.0.1:3000

Bug fixes:

  - PostgreSQL DB Procedure 중에서 sp_em_smt_tran_select 부분의 쿼리절에 누락된 alias 추가

Changes in EMMA 3.5.0 (Release) -- Dec 07, 2015
---------------------------------------------------------------------

New features:

  - msg_key 추가
    + 모든 DB 대상으로 msg_key 필드를 추가 하여 메시지 키 값으로 사용
  
  - TPM(Throughput Per Minute) 기능 추가
    + EMMA가 분당 발송하는 메시지의 최대 개수이며, emma.cf에 tpm.count 설정 옵션 추가 

  - 매뉴얼 개편 작업
    + [부록] EMMA V.3 for 부가기능 가이드 v3.5.0.0.pdf
	+ EMMA V.3 for Java FAQ v3.5.0.0.pdf
	+ EMMA V.3 for Java Resource v3.5.0.0.pdf
	+ EMMA V.3 for Java 사용자설명서 v3.5.0.0.pdf
	+ EMMA V.3 for Java 설치매뉴얼 v3.5.0.0.pdf
	+ EMMA V.3 결과코드 v3.5.0.0.pdf
	+ 테이블 명세서

  - 결과 코드 변경 및 추가
    ------------------------------------------------------------------------------------------------------------------------------
	| 구분 | 결과코드 |                    내용                                                                                  |
    ------------------------------------------------------------------------------------------------------------------------------
	| 변경 |   1003   |  발신번호 형식 오류(발신번호 변작 방지 세칙 위반)                                                        |
    ------------------------------------------------------------------------------------------------------------------------------
	| 추가 |   1022   |  발신번호 사전등록제 관련 미등록 발신번호 사용                                                           |
    ------------------------------------------------------------------------------------------------------------------------------
	| 변경 |   3017   |  발신번호 변작방지 세칙위반                                                                              |
    |      |          |  - 동보MT 일부건 세칙 위반 시                                                                            |
    |      |          |  - 국제 동보 MT 세칙 위반 시 (최종착신지 국내)                                                           |
    |      |          |  - 발신번호에 MO번호를 사용하고, 해당 MO발급자가 아닌 고객이 MT 발송 시                                  |
    ------------------------------------------------------------------------------------------------------------------------------
	| 변경 |   3018   | 휴대폰 가입 이동통신사를 통해 발신번호 변작방지 부가 서비스에 가입된 번호를 발신번호로 사용한 MT 전송 시 |
    ------------------------------------------------------------------------------------------------------------------------------
	| 변경 |   3019   | KISA or 미래부에서 모든 고객사에 대하여 차단 처리 요청 번호를 발신 번호로 사용한 MT 전송시               |
    ------------------------------------------------------------------------------------------------------------------------------
 
  - 셋업 화일 설치 시 "~/sql" 폴더 삭제 

  - 국제 메시지 발송을 위한 가이드 내역 추가
    + 셋업 화일 설치 시 "국제/국내" 설정 옵션 추가
	+ 설치매뉴얼, 사용자 매뉴얼에 국제메시지 발송을 위한 가이드 내역 추가

   - PostgreSQL DB 추가
    + 테이블 명세서 추가 : EMMA V.3 PostgreSQL명세서 v3.5.0.0.pdf
    + 프로시저 추가 : sp_em_com.sql, sp_em_mmt.sql, sp_em_smt.sql
	
  - MSSQL query timeout 발생 시 db 연결을 끊고 재연결 시도하는 기능 추가

  - MO DB Insert 처리시 Oracle SetQueryTimeout 기능 추가 

  - em_smt_log_temp / em_mmt_log_temp 테이블 생성 방식 변경
    + em_smt_log_temp_E1과 같이 생성
    + Oracle/Tibero : dynamic 테이블로 생성
    + MSSQL : Global 테이블로 생성
  
  -  MMSMT 통신사 포맷 전송 방식 내역 삭제
    + SKT : .smil, KT: .html 확장자 사용 방식
	+ IBML : .ibml 확장자 사용 방식

  - MO 릴레이기능 추가(Bridge 사용시)
  - 분배기능 추가(Bridge 사용시)

Bug fixes:

  - MMT 발송 시 '1003' NACK 코드를 수신할 경우 리포트 이력 유실되는 버그 수정(Bridge 사용시)

  - DB2 에 대한 기능 개선
    + procedure 에서 not-hold cursor 일 경우, commit이 일어나면 auto close가 발생되어 정상 로직 수행이 안되는 현상
	  -> with hold option 추가
    + 이중화 설정(EMMA ID 사용)하여 DB2 procedure 를 사용하는 경우에 대한 버그 수정
      -> 발송 대상으로 선택된 n건 중 한건만 발송 되는 현상에 대해 emma_id 로 업데이트 하는 if 문 개선
      -> 중복 발송 현상에 대해 update 하는 구문의 조건절에 emma_id 추가 	
	+ 동보 발송시 resultset을 자동으로 release 하는 현상에 대하여 resultset is closed 여부를 판단하여 수행하도록 개선
	  -> emma.info.log에 "client is empty" 로그 반복적으로 기록되는 현상 수정
	
	
Changes in EMMA 3.4.13 (Release) -- June 29, 2015
---------------------------------------------------------------------

New features:

  - Sybase DB  
	+ DB Query TimeOut 추가

  - emma.info.log 파일에 기록될 로그 내역 추가
	+ 기동 시 동작 유효 시간 출력
	  (대상 : Collector, Sender, Logtransfer, Jobscheduler, Userscheduler)
	+ 동작 유효 시간 시점에 동작 시작 시점과 종료 시점에 대한 상태 정보
	  (대상 : Collector, Sender)
	  (표시 정보 : 동작 시작 시점 - is started, 동작 종료 시점 - is terminated)

  - FAQ 매뉴얼 내역 추가
	+ MMS 발송시 첨부파일 SIZE 제한 관련 가이드 추가 (결과코드 '3016')
	+ MSSQL 한글 정렬 collect 관련 처리 부분 내역 변경
	+ 국제 GW 접속 정보 관련 내역 추가

  - 사용자 매뉴얼 내역 추가
	+ MMS 발송시 첨부파일 SIZE 제한 관련 가이드 추가 (결과코드 '3016')
	+ "4.4 SMT MT 동보 단어 사용 방법" 에서 '%CHANGEWORD%, %CHANGEWORD#%' 에 대한 사용 방법 가이드 및 제약사항 추가

  - 결과 코드 추가
    -----------------------------------------------------------------------------------------------
	| 구분 | 결과코드 |                    내용                                                   |
    -----------------------------------------------------------------------------------------------
	| 추가 |   3017   |  발신번호(=회신번호) 변작 방지 서비스에 의거한 번호 형식 오류             |
    -----------------------------------------------------------------------------------------------
	| 추가 |   3018   |  발신번호(=회신번호) 변작 방지 서비스에 가입된 휴대폰 개인가입자 번호     |
    -----------------------------------------------------------------------------------------------
	| 추가 |   3019   |  발신번호(=회신번호) 인포뱅크에 번호 사전등록제를 통해 등록되지 않은 번호 |
    -----------------------------------------------------------------------------------------------
	
  - Quick Reference Guide 매뉴얼 내역 추가
	+ MMS 발송시 첨부파일 SIZE 제한 관련 가이드 추가 (결과코드 '3016')

Bug fixes:

  - N/A
	

Changes in EMMA 3.4.12 (Release) -- March 5, 2015
---------------------------------------------------------------------

New features:

  - Sybase DB 추가
    + db.cf 환경 설정 파일 : '9-Sybase' DB Type 추가
    + 테이블 명세서 추가 : EMMA V.3 Sybase명세서 v3.4.12.1.pdf
    + Library 추가 : jtds-1.2.8.jar
  
  - 로그 파일에 개인 정보 노출차단 사용 유무 항목 추가
    + Emma.cf 환경 설정 파일 : log.use.personalinfo.hide
	+ 사용 시 Callback, RecipientNum을 빈 값으로 기록

  - 동보 건수가 0일 경우 LOG 추가 
    + "SMT[GROUP]: {메시지키} / client is empty." 

  - 결과 코드 변경 및 추가
    ------------------------------------------------------------------------------------------------
	| 구분 | 결과코드 |                    내용                                                    |
    ------------------------------------------------------------------------------------------------
	| 추가 |   3016   |  첨부파일 사이즈 제한 실패                                                 |
    ------------------------------------------------------------------------------------------------
	| 변경 |   E906   |  파일이 성공인 경우 -> 전송 요청 시각이 없는 경우(SocketServer)            |
    ------------------------------------------------------------------------------------------------
	| 변경 |   E901   |  TTL 타임이 없는 경우 -> TTL 타임이 없는 경우(SocketServer)                |
    ------------------------------------------------------------------------------------------------
	| 변경 |   E911   |  첨부파일 오류 -> 서비스 타입이 MMS MT인 경우, 첨부파일 확장자가 없는 경우 |
    ------------------------------------------------------------------------------------------------

Bug fixes:

  - Mssql MO Procedure Bug fix
    + MMO 첨부 파일이 1개 이상일 경우, MMO file Table의 KEY(MO_KEY)가 신규 채번 되는 현상 수정
  
  - Maria DB MO Bug fix 
    + Socket 타임아웃 시 MO처리되지 않는 버그 수정
	
	
Changes in EMMA 3.4.11 (Release) -- October 14, 2014
---------------------------------------------------------------------

New features:

  - Maria DB 추가
    + db.cf 환경 설정 파일 : '8-Maria' DB Type 추가
    + 테이블 명세서 추가 : EMMA V.3 Maria명세서 v3.4.11.1.pdf
    + 매뉴얼 수정 내역 : Mysql 표기를 Mysql/Maria로 변경, Mysql과 Maria JDBC Driver 충돌 관련 가이드

  - 동보단어(change_word#) 처리 방식 개선
    + #은 숫자를 의미함
    + 성능개선 : change_word# 값이 전체 null이면 null로 처리하고, 한 개 이상 값이 존재 시(space포함)
      null을 공백(space)으로 치환함
    + 동보단어 내용에 사용할 수 없는 내용 :
	  특수문자 pipe("|"), %CHANGEWORD%, %CHANGEWORD1%, %CHANGEWORD2%, %CHANGEWORD3%, %CHANGEWORD4%, %CHANGEWORD5%

  - 발송 제한 시간인 경우 메시지 재발송 기능 제공
    + emma.cf에 설정값 추가 : runtime.collector.overtimefail (0:재발송함, 1:재발송안함)
    + collector 동작 시간만 해당.

  - 결과 코드 추가
    ------------------------------------------------------------------------------------------------
	| 구분 | 결과코드 |                    내용                                                    |
    ------------------------------------------------------------------------------------------------
	| 추가 |   E921   |  서비스 타입이 MMS MT 인 경우, 메시지 테이블에 파일그룹키가 없는 경우      |
    ------------------------------------------------------------------------------------------------
	| 추가 |   E922   |  동보단어 제약문자 사용 오류                                               |
    ------------------------------------------------------------------------------------------------
	| 추가 |   E919   |  발송 제한 시간인 경우, 메시지 재발송 처리가 금지 된 경우                  |
    ------------------------------------------------------------------------------------------------

  - NGM 요청 MO에 대한 이통사 내역 추가
    + MO 테이블에서 carrier 필드 값에 대하여 '10008'(NGM 요청 MO) 추가
    + MO 테이블에서 mo_recipient 필드 값에 #이후 4자리 숫자값이 들어가며,
      emo_recipient 필드 값에 #포함 4자리 숫자 이후 값이 들어감
   
Bug fixes:

  - 결과 코드에 대한 내역 수정
    + 'E907' 결과코드에 대하여 '메시지키가 없는 경우' 에서 '동보 여부가 없는 경우' 로 변경
  - 동보 전송 시 수신번호가 없는 경우에 대한 결과 코드 처리 부분 변경
    + '9999' 결과코드로 처리되던 부분을 'E901'(수신번호가 없는 경우) 로 변경


Changes in EMMA 3.4.10 (Release) -- september 30, 2014
---------------------------------------------------------------------

New features:

  - charset revision
    + 발송 테이블의 charset 필드 값이 존재 할 경우 해당 값을 사용하며, 값이 존재하지 않을 경우(null)에는
      emma.cf 환경 설정 파일의 gw.charset의 설정 값을 기본 인코딩으로 함.

  - 국제 문자 발송 시 분할 발송된 결과값에 대한 건수 관리용 필드 추가
    + 발송 및 이력 관리 테이블에 mt_res_cnt 필드 추가

  - Tibero DB 추가
    + db.cf 환경 설정 파일 : '7.Tibero' DB Type 추가

  - FAQ 매뉴얼 내역 추가
    + 동보단어 제약문자 : 특수문자 pipe("|")

Bug fixes:

  - 사용자 매뉴얼 내역 변경
    + '4.5. MMS MT 개별 메시지 전송(첨부화일 미포함)' 내역 중에서 MMS MT 발송 샘플 쿼리 변경 : 
       service_type 필드 값을 '2' 에서 '3' 으로 변경


Changes in EMMA 3.4.9 (Release) -- July 24, 2014
---------------------------------------------------------------------

New features:

  - N/A

Bug fixes:

  - MTSender 발송 제한 시간 기능 설정을 사용하는 경우 session 에 대한 ping을 수행하지 않는 현상 해결

  
Changes in EMMA 3.4.8 (Release) -- July 15, 2014
---------------------------------------------------------------------

New features:

  - User Library 에 DB Security Callback (IBDBSCallback) 기능 추가
  - Oracle query timeout 발생 시 db 연결을 끊고 재연결 시도하는 기능 추가 (MTReport, SMO, MMO 적용)
  - MTReport LOG(emma.info.log)에 남기는 내역에 대한 value 순서 변경 
  - 암호화 사용시 전송 지연 현상 개선

Bug fixes:

  - change_word(동보단어) NULL값을 공백(space)으로 처리하도록 수정
  - User Library 의 MT Data Transform Callback (IBMTTCallback) 사용 시 동보단어 치환 안되는 현상 해결 


Changes in EMMA 3.4.7 (Release) -- April 23, 2014
---------------------------------------------------------------------

New features:

  - LMS / MMS 서비스 검증 추가 (service_type, 첨부파일 유무 체크)
  - 결과 코드 E920, E921 추가
    
Bug fixes:

  - N/A
	

Changes in EMMA 3.4.6 (Release) -- April 23, 2014
---------------------------------------------------------------------

New features:

  - N/A
    
Bug fixes:

  - Oracle에서 쿼리 수행 제한 시간 설정 가능
    (db.cf에서 설정 값 세팅, oracle 11g는 사용할 것을 권장함)

  
Changes in EMMA 3.4.5 (Release) -- February 19, 2014
---------------------------------------------------------------------

New features:

  - N/A
    
Bug fixes:

  - MODBHandler 에서 사용된 불 필요한 JDK 1.6 API 소스 삭제 
		+ insertMmsMo(byte[] buf) 메소드에서 IOException(Throwable cause) 사용한 부분 삭제
  - EMMA 설치 파일을 컴파일된 JDK버전(1.5.0/1.6.0)에 따라 분리하여 생성

  
Changes in EMMA 3.4.4 (Release) -- August 22, 2013
---------------------------------------------------------------------

New features:

  - SysCheck 명령어 추가
    
Bug fixes:

  - MMO 콜백 사용 시 content 내용 한글 인코딩 에러 버그 수정
  - MMS MT 동보에서 수신차단 테이블 조회 안되는 버그 수정
  
  
Changes in EMMA 3.4.3 (Release) -- June 18, 2013
---------------------------------------------------------------------

New features:

  - db.pollinginterval 소수점 3자리(단위 초)까지 설정 가능
    
Bug fixes:

  - Bug fixes:

  - V3.2.1 큐 깨짐 현상 해결.
    (1) V3.2.1
        - file / memory 형태의 lock을 분리하여 사용함.
        - trylock 사용 : lock 은 경쟁적이므로 서로 경합을 벌여서  lock 이 안 걸리는 현상이 발생할 수 있음. lock 에 대한 획득시간이 옵션으로 들어가 있으나, lock 실패 시에 대한 방어코드 부족.
        - 문제점 : lock 실패 시 방어코드 부족으로 queue 깨짐 현상이 발생할 수 있음.
	(2) V3.4.3
        - v3.2.1 에 대한 문제점을 해결함. 
        - 개선 : file에 직접 lock 을 걸어주는 filelock 을 사용함. ==> filelock 은 lock 이 걸릴 때까지 기다림. 
  
  
Changes in EMMA 3.4.2 (Release) -- April 24, 2013
---------------------------------------------------------------------

New features:

  - SMO/MMO DB Insert 로그 추가
  - EMMA 실행시 -Xms256m -Xmx512m 옵션 추가
  - MMS MO 첨부파일명에 포함된 Non-Printable Character 제거
  
Bug fixes:

  - Session Retry Count 초기화 패치
  - MMS MT File 재전송 로직 패치
  

Changes in EMMA 3.4.1 (Release) -- December 20, 2012
---------------------------------------------------------------------

New features:

  - DB 세션이 끊긴 경우 데이터 유실 방지 기능 추가
  
Bug fixes:

  - N/A


Changes in EMMA 3.4.0 (Release) -- November 01, 2012
---------------------------------------------------------------------

New features:

  - 키(PK) 중복 처리 기능 개선(SMT/MMT/SMO/MMO)
    + SMT/MMT : 기존 데이터 유지하고, 새로운 데이터는 Skip
    + SMO/MMO : mo_key 중복시 새로운 mo_key를 채번한 후 insert
  - SMO/MMO DB Insert 및 첨부파일 저장 기능 개선
  - 발송 데이터 이력관리를 위한 reg_date(등록일) 필드 추가(SMT/MMT)
  - Thread 상태 확인을 위한 로그 추가
  - Log 이동시 속도 개선
  - MT 레포트 및 MO Ack에 대한 암호화 기능 추가
      
Bug fixes:

  - Que 장애 알람 패치
  - subject, emo 필드 size 80byte 초과하지 않도록 수정(SMO/MMO)
  - AIX 서버(AIX psmsd2 1 6)에서 발생하는 과도한 cpu 점유율 문제 패치
  - 동보 전송시 tran 테이블의 max 데이터 유지되도록 패치(MySQL)
  - 동일 이름의 파일 수신시 file 중복 문제 패치(MMO)
 

  
Changes in EMMA 3.3.2 (Release) -- July 06, 2012
---------------------------------------------------------------------

New features:

  - SEED 알고리즘 추가
  - MSSQL 버전별 프로시저 통합
  - MO 메시지 insert 실패 시 Log만 남기고 메시지 삭제
  - Mysql MO insert시 escapeSql 추가
  - Thread 상태 확인 로그 추가
    예) [ERROR] MMSMTCollector is not alived, now recreate

Bug fixes:

  - N/A
  
  
  Changes in EMMA 3.3.1 (Release) -- April 01, 2012
---------------------------------------------------------------------

New features:

  - EMMA 3.2.1에서 사용하던 -stop 명령을 추가
  - MO 이중화 기능 추가. (프로시저도 변경)
  - 첨부파일의 확장자가 없을 경우, 파일명이 확장자가 되어버리는 오류 수정
  - Thread 가 죽었을 때 Log 추가
  - DBMS tibero 지원 추가


Bug fixes:

  - 프로시저에서 deadlock 패치
  
  Changes in EMMA 3.3.0 (Release) -- September 01, 2011
---------------------------------------------------------------------

New features:

  - 설치 시 DB정보입력방식 변경
  - authcipher추가
  - 전송우선순위 설정방법 변경
  - queue name설정 추가
  - DB에서 emma_id필드 추가
  - 기존 emma라이브러리에서 ibframe과 ibpdu를 분리  
  - MOT Callback 추가

Bug fixes:

  - N/A



Changes in EMMA 3.2.1 (Release) -- February 01, 2010
---------------------------------------------------------------------

New features:

  - N/A

Bug fixes:

  - Oracle 이중화 버그 패치
  - Oracle Sequence 생성시 MAX 설정 999,999,999


Changes in EMMA 3.2.0 (Release) -- June 22, 2009
---------------------------------------------------------------------

New features:

  - URL 첨부파일 전송 기능 추가(emma.cf에서 file.type.mmsmt = http)
  - EMMA 상태정보 및 통계 이중화
  - EMMA Socket Server 전송 기능 추가
  - MT Data Transform User Callback 기능 추가
    + MT 메시지 DB 조회 후 결과를 가공하기 위한 Callback 기능 추가
  - MT Data Transform User Callback 기능 추가
  - EMMA High Availavility 이중화 기능 추가
    + Active-standby 모드 이중화 기능 지원
    + EMMA 간 Network Health Check 후 비정상시 자동 bootup
  - EMMA v.2, v.2 Schema 지원
  - EMMA 첨부파일 전송 간소화
    + em_mmt_file_group, em_mmt_file 두 테이블을 em_mmt_file 테이블로 통합
  - IBML(MMS MT) 전송 기능 추가


Bug fixes:

  - LGT EMS ems_id bug patch



Changes in EMMA 3.1.2 (Release) -- February 27, 2009
---------------------------------------------------------------------

New features:

  - DBCipher(db.cf에서 DB정보를 암호화) 추가
  - User Scheduler Callback 추가
  - Stored Procedure 성능 Tunning
  - JobScheduler 추가 : 이전데이터로그이동, 로그파일삭제
  - SMSMO LGT EMS 처리 
    + ems_id INT,
    + ems_total INT,
    + ems_seq INT,


Bug fixes:

  - MMSMO 첨부파일 이름이 64byte 이상일 때 오류 패치(64->256)


Changes in EMMA 3.1.1 (Release) -- January 10, 2009
---------------------------------------------------------------------

New features:

  - Logging Library JUL to SLF4J, Log4J
  - emma.cf에서 MMSMO Content Html 및 XML 태그 삭제 설정 기능 추가
  - db.cf에서 프로시저명 변경가능하도록 기능 추가
  - 번호, 메시지가 같을경우 중복발송방지 기능 추가

Bug fixes:

  - Application shutdown시 log 안 남는 버그 패치
  - Error Log trace 


Changes in EMMA 3.1.0 (Release) -- November 17, 2008
---------------------------------------------------------------------

New features:

  - Added regkey : 인증키 등록 Application
  - Added dbcheck : 데이터베이스 연결 및 권한 체크 Applcation
  - Added Cubrid Database support
  - Added Stored Procedure prifix : 같은 데이터베이스 인스턴스에서 같은 
    스키마의 테이블이 여러개일때 처리를 위한 속성 추가(db.cf)

Changes:

  - Changed the emma authentication key generation : 인증키를 서버에서 
    생성하여 클라이언트에 배포하는 방식에서, 클라이언트에서 생성하여
    서버로 전송하여 등록하는 방식으로 변경
  - Callback Interface Method 및 Parameter 추가
  - Callback에서 사용할 수 있는 Database Connection을 지원하는 API 제공

Bug fixes:

  - LogTransfer 에서 엠마 이중화 처리를 위한 emma_id 파라미터 추가.


Changes in EMMA 3.0.2 (Release) -- September 2, 2008
---------------------------------------------------------------------

New features:

  - 통합메시징서비스(SMSMT/MMSMT/SMSMO/MMSMO)
  - Multi-platform Support(Java, Windows, Linux)
  - 다양한 고객사 테이블스키마 지원(Procedure)
  - 보안강화 : RSA Asymmetric encryption algorithm emma authentication.
  - Added AES symmetric encryption of message
  - 장애알람기능제공(Database, G/W)
  - Added distributed multiple session(N Sender, N Receiver)
  - G/W 이중화 지원
  - EMMA 이중화 지원
  - Added message priority(Slow/Fast/Very Fast)
  - 번호이동 데이터베이스 검색 기능 추가
  - Added support of various database(Oracle, SQLServer, MySQL)
  - 같은메시지를 여러사람에게 빠르게 전송할 수 있는 동보기능 추가
  - MMSMT 전송시 통신사별로 서로 다른 첨부파일 전송기능 추가
  - 여신관리기능개선
  - 부서별 정산 기능 제공
  - 다양한 형태의 MSGTYPE 지원
  - MO 자동응답 개선
  - Added Session Monitor thread : EMMA 상태정보 제공
  - Added Statistics Scheduler thread : EMMA 일통계 제공


Bug fixes:

  - TCP Packet오류시 중복 전송 발생 가능성을 사전에 제거.
  - MO Oracle package bug fix.
