고객센터-작은 소리에도 귀 기울이겠습니다.

FAQ

FAQ



  • 16 MMS MO에서 content 필드의 html 태그를 삭제하고 싶습니다.
    MMS MO을 수신하면 기본적으로 이통사에서 보낸 포맷 그대로 DB에 입력하기 때문에 MMS의 경우 태그가 붙어서 들어오게 됩니다. 만약 태그를 뺀 텍스트만 DB에 입력하고자 한다면 $EMMA_HOME/conf/emma.cf에서 아래 설정 값을 변경하시면 됩니다.

    #-------------------------------------------------------------------------------
    # MMSMO Html 및 XML 태그 삭제 여부
    #-------------------------------------------------------------------------------
    mmsmo.tagstrip = 1
  • 15 스팸 필터링(banlist table 사용)시 특수문자 사용법을 알고 싶습니다.
    메시지 내용(content)으로 필터링 할 경우 (banlist Table의 ban_type 필드 값 ‘T’) 특수 문자 사용 시 정규 표현식 사용법에 맞춰야 합니다. 특수 문자 앞에 ‘\’, ‘[]’ 필요 유무를 체크하도록 합니다.

    1) '\' , '[]'와 함께 써야 하는 특수 문자
    * + $ | ( ) { } ^ [ ]
    예:) * -> \* OR [*], [금감원] -> \[금감원\]

    2) 바로 사용 가능한 특수 문자
    ! # % & @ ` : ; - < > , ~

    3) 정규 표현식 패턴
    a|b : a또는 b ([ad]도 같은 표현)
    [a-d] : 소문자 ‘a’에서 ‘d’까지 (“a|b|c|d” 또는 “[abcd]”와 동일)
    [^abc] : abc를 제외한 문자열
    [[a-f][0-9]] : a~f범위에 속하거나 또는 0~9범위에 속하는 문자열
    [[a-z]&&[jkl]] : a~z 범위에 포함되고 jkl에도 포함되는 문자열
    [[a-z]&&[^jkl]] : a~z 범위에 포함되고 jkl이 아닌 문자열
    ab* : a뒤에 0개 이상의 b가 있는 문자열 (“a”, “ab”, “abbb” 등)
    ab+ : a 뒤에 1개 이상의 b가 있는 문자열 (“ab”, “abbb” 등)
    . : 줄바꿈 문자 이외의 모든 문자
    \ (backslash) : 정규식에 사용되는 특수문자
    (*, ", \ 문자를 명시할때 사용. 예) \ -> \\, " -> \", * -> \*)
  • 14 MMS 전송 시 첨부파일 전송 시 특정 통신사로만 전송하고 싶습니다.
    첨부파일 테이블(em_mmt_file)의 carrier 필드를 4절과 동일한 방식으로 설정하면 됩니다. 이 기능은 통신사별로 다른 파일을 전송 하실 때 유용합니다. 예를 들어 smil은 SKT, html은 KT으로 전송 하실 수 있습니다.
  • 13 Trigger 처럼 동작하는 방법이 있습니까?
    EMMA는 Trigger를 사용해도 무방하지만, Trigger를 사용하는 방법보다는 아래 두 가지 방법을 사용하실 것을 권장 드립니다.

    ▶ Procedure 수정 : 간단한 DB 처리 부분을 해야 한다면, 프로시저를 직접 수정하시면 됩니다.
    ▶ User Callback Library : User Callback Library는 메시지 송수신 각 단계에서 사용자가 개발한 모듈이 Call 되는 기능입니다. EMMA V.3 이전 버전에서는 메시지 송수신 후 특정 Job 수행을 위해 Trigger등을 사용하거나 별도로 DB를 Polling하는 Application을 개발했지만, EMMA v.3에서는 사용자 라이브러를 개발 후 Call하도록 하면 됩니다. 자세한 사용 방법은 EMMA사용자 설명서 7절 User Library을 참조하시기 바랍니다.
  • 12 전송 테이블에 데이터를 입력했는데, 발송이 되지 않습니다.
    em_smt_tran 또는 em_mmt_tran에 데이터를 입력하였는데, 휴대폰으로 메시지가 전송이 되지 않는다면 먼저 sp_em_smt_tran_select 프로시저를 call하여 검색 결과가 존재하는지 확인해보시기 바랍니다. 만약 검색결과가 없다면 검색 조건에 해당하는 데이터가 존재하는 않는 것이므로 프로시저의 SQL 조건 부분을 체크하시기 바랍니다. 프로시저 Call방법은 아래와 같습니다.

    ▶ Oracle의 경우(sqlplus)
    VARIABLE p_cur refcursor
    begin
    emma_pkg_smt.sp_em_smt_tran_select(:p_cur, 'SMT', 'S', 2880, 'E1', 'Y' );
    end;
    /
    print :p_cur

    ▶ MSSQL의 경우
    exec sp_em_smt_tran_select 'SMT', 'S', 1440, 'E1', 'Y'

    ▶ MySQL의 경우
    call sp_em_smt_tran_select('SMT', 'S', 1440, 'E1', 'Y');
  • 11 Content필드 입력 시 Line break(줄 바꿈)는 어떻게 입력하나요?
    Message 본문 입력 시 줄 바꿈을 입력하기 위해서는 DB별로 아래처럼 처리하시면 됩니다.

    ▶ Oracle의 경우
    '안녕하세요'||chr(13)||chr(10)||'좋은 하루 되십시오'

    ▶ MSSQL의 경우
    '안녕하세요'+char(13) + char(10) + '좋은 하루 되십시오'

    ▶ MySQL의 경우
    '안녕하세요\r\n좋은 하루 되십시오'
  • 10 MSSQL에서 테이블 정렬 문제(Korean_Wansung_CS_AS, Korean_Wansung_CI_AS)가 발생합니다.
    MSSQL에서 DB 기본 테이블 정렬 값과 프로시저에서 정의한 정렬 값이 틀린 경우 또는 테이블간 정렬 값이 틀린 경우 아래와 같은 로그가 발생합니다. 해당 로그가 발생한다면, 기존에 생성된 EMMA관련 테이블 drop 후 프로시저에서 "COLLATE Korean_Wansung_CS_AS" 부분을 삭제 하신 후 프로시저를 다시 컴파일 하여 테스트 하시면 됩니다.

    ▶ Log
    com.microsoft.sqlserver.jdbc.SQLServerException: equal to 작업에서의 "Korean_Wansung_CS_AS"과(와) "Korean_Wansung_CI_AS" 간의 데이터 정렬 충돌을 해결할 수 없습니다.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
  • 9 Communications link failure due to underlying exception 오류가 출력됩니다.
    MySQL 사용 시 MTDistributor Thread에서 아래와 같은 메시지가 출력된다면 일정 세션 동안 DB 트래픽이 없어 DB 연결이 끊겼기 때문에 출력되는 로그입니다. MTDistributor에서만 발생하는 이유는 G/W에서 전송 결과 수신이 되어야 DB 처리를 시도하기에 일정시간 처리 건수가 없으면 DB연결이 해제되기 때문입니다. 단 DB가 끊기더라도 재 연결 후 결과 처리 하기 때문에 동작 상 문제는 되지는 않습니다.
    단, 해당 오류가 빈번하게 발생된다면, MySQL 설정 값 중 wait_timeout 값을 확인 하셔서 적정 값으로 늘리시기를 권장 드립니다.

    ▶ Log
    [2009/05/14 21:56:24.691] [ERROR] [TH0] MTDistributor I SysException occurred when insert to database from queue.
    ib.a.e.e
    at ib.emma.db.mysql.MySQLRPTDBHandler.updateMtResult(Unknown Source)
    at ib.emma.worker.MTDistributor.I(Unknown Source)
    at ib.emma.worker.MTDistributor.run(Unknown Source)
    com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

    java.io.EOFException
    MESSAGE: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
  • 8 “문자열이나 이진 데이터는 잘립니다.”란 메시지가 반복 출력됩니다.
    SQLServer에서 Insert되는 데이터의 길이가 정의된 필드의 길이보다 클 경우 발생하는 오류입니다. 이 경우 실제 입력되는 값과, 테이블 필드의 길이를 비교하여 길이를 맞춰주시기 바랍니다.

    ▶ Log
    [2009/04/07 20:49:17.390] [ERROR] [TH0] MODistributor L SysException occurred when inserting MMSMO to database from queue.
    ib.a.e.e
    at ib.emma.db.mssql.MSSQLMODBHandler.insertMmsMo(Unknown Source)
    at ib.emma.worker.MODistributor.L(Unknown Source)
    at ib.emma.worker.MODistributor.run(Unknown Source)
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]문자열이나 이진 데이터는 잘립니다.
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
  • 7 EMMA 실행 시 Oracle 계정 권한 설정 오류가 발생합니다.
    EMMA 실행 시 아래와 같은 로그가 출력된다면, 오라클 계정의 테이블 생성 권한이 없어서 발생하는 경우입니다. 이때는 해당 계정에 테이블 생성 권한을 아래 ‘권한 부여 방법’에 있는 명령어를 통해 부여하면 됩니다.

    ▶ Log
    java.sql.SQLException: ORA-01031: 권한이 불충분합니다
    ORA-06512: "EMMA.EMMA_PKG_COM", 줄 152에서
    ORA-06512: 줄 1에서
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)

    ▶ 권한 부여 방법
    oralce9i : grant create any table to user_emma;
    oracle10g : grant create table to user_emma;
Back to top