발송 장애는 단순 발송 실패 건이 아니라, 발송 처리 인프라 또는 연동 구간 문제로 정의한다.
| 구분 | 장애 정의 | 모니터링 기준 |
|---|---|---|
| 분할 발송 | Redis 연결 오류 | Redis timeout/connection 오류 |
| PUSH 발송 | Provider 연결 장애 | PUSH.SENDTYPE=PROVIDER 상태에서 Provider 접속 실패 |
| SMS 발송 | DB 연결 오류 | SMS 발송 테이블 Insert 중 DB 접속 실패 |
| RCS 발송 | DB 연결 오류 | RCS 발송 테이블 Insert 중 DB 접속 실패 |
| KKOALT 발송 | DB 연결 오류 | 알림톡 발송 테이블 Insert 중 DB 접속 실패 |
| KKOFRT 발송 | DB 연결 오류 | 친구톡/브랜드메시지 발송 테이블 Insert 중 DB 접속 실패 |
채널명 단독 키워드(
SMS,KKOALT,PUSH,RCS등)는 정상 INFO 로그에도 포함될 수 있으므로 단독 모니터링 키워드로 사용하지 않는다. SMS, RCS, KKOALT, KKOFRT는 장애 정의가 모두 DB 연결 오류이므로 DB 연결 오류 키워드를 공통 감지하고, 발생 채널은 logger명 또는 stack trace 위치로 분류한다.
분할 발송 처리 중 Redis 연결 오류가 발생하여 발송 대상 데이터를 Redis Queue에 등록하지 못하는 경우.
16:41:56.608 [Thread-26] ERROR kr.uracle.ums.core.processor.redis.RedisPushThread - 에러상세:
org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out after 1 minute(s)
[ERROR] kr.uracle.ums.core.service.send.split.SplitSenderThread - !!!! [SPLIT SEND ERROR] CAUSE : org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis server
Redis command timed out
RedisCommandTimeoutException
RedisConnectionFailureException
Unable to connect to Redis
Cannot get Jedis connection
SPLIT SEND ERROR
PUSH.SENDTYPE=PROVIDER 설정 상태에서 UMS가 Push Provider에 연결하지 못하는 경우.
PUSH.SENDTYPE=PROVIDER
PUSH.PROVIDER.REAL.CONINFOS=127.0.0.1:10420
PUSH.PROVIDER.BATCH.CONINFOS=127.0.0.1:10420
[ERROR] kr.uracle.ums.core.extention.push.sender.PublicPushClientPool - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[ERROR] kr.uracle.ums.core.extention.push.sender.PublicPushClientPool - ! [DEFAULT REAL] PROVIDER CONNECTION ERROR~~!! [providerIP: 127.0.0.1 , port:10420]
[ERROR] kr.uracle.ums.core.extention.push.sender.PublicPushClientPool - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[ERROR] kr.uracle.ums.core.extention.push.sender.PublicPushClientPool - !!!!!! [DEFAULT BATCH] PROVIDER CONNECTION ERROR~~!! [/127.0.0.1:10420]
java.lang.Exception: [DEFAULT REAL] There is no push provider connected.
java.lang.Exception: [DEFAULT BATCH] No active push provider found after round-robin attempts.
PROVIDER CONNECTION ERROR
There is no push provider connected
No active push provider
SMS/LMS/MMS 발송 처리 중 DB 연결 오류로 발송 테이블에 데이터를 등록하지 못하는 경우.
[ERROR] kr.uracle.ums.core.service.queue.FileQueueHelper - 심각 : 파일큐 담기 실패 발송데이타 유실!!! SEQNO:12345, CUID:test001, M_NUM:01012345678, 이유:org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
[ERROR] kr.uracle.ums.core.processor.sms.SmsWorkThread - 에러상세:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
CannotGetJdbcConnectionException
Failed to obtain JDBC Connection
Communications link failure
SQLRecoverableException
DataAccessResourceFailureException
RCS 발송 처리 중 DB 연결 오류로 RCS 발송 테이블에 데이터를 등록하지 못하는 경우.
[ERROR] kr.uracle.ums.core.processor.rcs.RcsWorkThread - 에러상세:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host has failed.
SQLServerException
CannotGetJdbcConnectionException
Failed to obtain JDBC Connection
DataAccessResourceFailureException
알림톡 발송 처리 중 DB 연결 오류로 알림톡 발송 테이블에 데이터를 등록하지 못하는 경우.
[ERROR] kr.uracle.ums.core.processor.kko.KkoAltWorkThread - 에러상세:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
CannotGetJdbcConnectionException
Failed to obtain JDBC Connection
SQLRecoverableException
Connection reset
DataAccessResourceFailureException
친구톡/브랜드메시지 발송 처리 중 DB 연결 오류로 친구톡 발송 테이블에 데이터를 등록하지 못하는 경우.
[ERROR] kr.uracle.ums.core.processor.kko.KkoFrtWorkThread - 에러상세:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
Communications link failure
CannotGetJdbcConnectionException
Failed to obtain JDBC Connection
SQLRecoverableException
DataAccessResourceFailureException
Redis command timed out
RedisCommandTimeoutException
RedisConnectionFailureException
Unable to connect to Redis
SPLIT SEND ERROR
PROVIDER CONNECTION ERROR
There is no push provider connected
No active push provider
CannotGetJdbcConnectionException
Failed to obtain JDBC Connection
Communications link failure
SQLRecoverableException
DataAccessResourceFailureException
SQLServerException
MyBatisSystemException
PersistenceException
PUSH.SENDTYPE=PROVIDER 환경에서 Provider 연결 오류 키워드로 감지한다.