상황 L4/L7 스위치 --- WEB --- WAS(애플리케이션)로 구성된 환경에서 2~3초 간격으로 L4/L7 스위치에서 헬스체크 신호를 보냄 애플리케이션은 헬스체크를 위해 DB에 SELECT 1 질의하게 되어있음 인프라팀 작업 이슈로 마스터 DB 서버 메모리 점유율이 너무 높아져 DB가 롤체인지 됨(약 12초 정도 소요) 롤체인지 ...
MySQL에서 4bytes 이모지가 물음표로 저장되는 이슈
상황 MySQL DB에 🎃이모지 저장시 ‘????’로 저장되었고, connection properties(jdbc url에 쿼리 스트링으로 붙는 값들)를 변경해가며 테스트 해 본 결과는 다음과 같았다. connection properties 현상 mysql-connector-j 버전 ...
프록시를 통해 API 호출할 때 지연되는 이슈
상황 프록시 서버를 통해 API를 호출할 때 응답이 지연되는 케이스가 있었고, tcpdump를 통해 확인해본 결과 프록시 서버에 요청을 했다가 응답이 없으니 직접 요청 서버로 접근하는 것을 확인할 수 있었다. 프록시 서버에서 응답을 못 받은 이유는 네트워크 ACL 신청이 누락되어서였으며 ACL 등록 이후 해당 현상은 나타나지 않았다. 의문...
MyBatis-Spring 트랜잭션 관리
해당 포스팅에서 mybatis, mybatis-spring 사용법을 간단히 살펴보았다. 이번에는 개인적으로 가장 궁금했던 mybatis-spring에서 트랜잭션을 다루는 부분이 내부적으로 어떻게 동작하는지 살펴보려고 한다. (예제 코드는 훑어보기 편에서 사용된 코드) 들어가기 전 : 예제 코드 다시 살펴보기 SqlSession의 구...
JDBC / MyBatis / MyBatis-Spring 훑어보기
JDBC부터 mysql-spring까지 간단하게 사용해보면서 드는 개인적인 생각을 적어보자. 시나리오 : 회원 테이블에 회원 정보 저장 후, 회원 이력 테이블에 이력 저장하기 전 예외 발생 상황1 : 회원 정보는 저장됨 상황2 : 회원, 이력 테이블에 모두 저장되지 않음 JDBC ...
키릴문자를 아시나요 ?
상황 담당하는 서비스에서 발행한 쿠폰 번호를 사용자가 앱에서 입력했는데 등록되지 않는다는 CS가 접수 로그에 남은 해당 쿠폰의 앞자리를 복사하여 DB에서 조회해봤는데 결과가 없음 하지만, 사용자가 보내준 스크린샷에 있는 쿠폰 번호를 직접 입력해서 조회하면 결과가 있음 원인 파악하기 아래 코드로 로그에서 복사한 경우와 직접 입력한 ...
javax.net.ssl.SSLHandshakeException - No appropriate protocol (protocol is disabled or cipher suites are inappropriate)의 원인을 찾아서
상황 신규 이전한 서버에서 애플리케이션을 띄우는데 다음과 같은 에러를 마주하게됐다. 이전 서버에서와 달라진 점은 CentOS 7.4에서 7.9로 바뀐 것밖에 없는데 뭐가 문제일까 이해가 잘되지 않았다. 또한 로컬 환경에서는 문제없이 실행되는 상황이라 추적이 더 어려웠다. Caused by: javax.net.ssl.SSLHandshakeExc...
HTTPS 요청이 HTTP로 리다이렉트 되는 현상
상황 서버 이전 작업 후 담당 웹사이트에서 URL 리다이렉트시 페이지 응답이 없는 경우가 발생함 특정 사용자에게서는 이런 현상이 발생하지 않음 확인해보니 HTTPS 요청이 HTTP로 바껴서 리다이렉트됨 원인 파악하기 요청이 WAS에 도달하기까지의 흐름 (브라우저) ---- https ---- (L4/L7 스...
wait_timeout을 초과한 커넥션을 사용해서 겪은 이슈 (The last packet successfully received from the server was ... milliseconds ago)
상황 최근 배치 애플리케이션의 커넥션 풀 관련 설정을 변경한 후 MMS 발송하는 job에서 아래와 같은 에러 발생 Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 104,...
MySQL에서 시간,날짜 데이터를 저장할 때 반올림되는 현상 (2)
상황 이전 포스팅 에서 MySQL 반올림 현상으로 인해 겪었던 이슈를 살펴보았다. 이번 포스팅에서는 해당 이슈를 해결하면서 궁금했던 소수점 초가 제거되기까지의 자료형 변환 과정을 들여다보자. 소수점 초가 제거되기까지의 과정 살펴보기 public void 상품권생성() { 상품권생성정보 info = new 상품권생성정보(param1, ...