트러블 슈팅(6)
-
Spring boot jar 파일 실행시 profile 적용
기존에 제가 담당하던 시스템을 매우 Legacy한 시스템입니다.최근에 spring boot를 적용하고 생성된 jar 파일을 실행시키는데 profile이 제대로 적용되지 않는 상황이 발생했습니다.여러 자료들을 찾아보니 jar 파일을 실행새키면서 profile을 적용하는 방법은 총 2가지가 있었습니다.Java System Propertiesjava -jar -Dspring.profiles.active={프로파일} 파일위치 java option현 구조에서 주의해야할 사항은 -Dspring.profiles.active 옵션이 파일 위치보다 앞에 있어야 합니다. 만약 그렇지 않다면 실행시 profile을 인식하지 못 합니다.Program Argumentsjava -jar 파일 위치 --spring.profiles..
2024.12.21 -
MySQL select insert Deadlock
최근 업무 중에 시스템에 아래와 같은 에러 로그가 발생한 것을 보았습니다. java.sql.SQLException: Deadlock found when trying to get lock; try restarting transaction Query: update … 에러 로그가 발생한 쿼리는 아래의 예시와 같은 단순한 update 구문이었습니다. UPDATE `TABLE` SET `column1` = `column1` WHERE `column2` = `column2`운영환경에서 사용하는 DB는 MySQL이었고 모든 설정은 default 설정으로 되어 있었습니다. MySQL에서 deadlock 관련 로그를 확인해보니 에러가 발생한 update 구문의 테이블과 동일한 테이블을 사용하는 SELECT INSERT..
2022.10.20 -
Ajp Protocol packetSize 제한 오류
최근 Tomcat과 Apache를 연동하는 도중에 Apache에서 다음과 같은 에러 메시지가 나타났습니다. [Fri May 13 19:09:51 2022] [79415:140343571771968] [error] ajp_connection_tcp_get_message::jk_ajp_common.c (1409): (node2) wrong message size 65536 [Fri May 13 19:09:51 2022] [79415:140343571771968] [error] ajp_get_reply::jk_ajp_common.c (2289): (tomcat) Tomcat is down or network problems. Part of the response has already been sent to t..
2022.05.19 -
Public Key Retrieval is not allowed
MySQL 8.0 이상의 버전의 DB 로 접속하려고 하는데, Public Key Retrieval is not allowed라는 에러가 발생했습니다. MySQL 8.0 미만의 버전에서는 주소값, 데이터베이스, 드라이버이름, 유저아이디, 패스워드 등만 가지고 있으면 DB 접속이 가능했습니다. 하지만 MySQL 8.0 이상의 버전부터는 보안적인 이슈로 useSSL=false와 allowPublicKeyRetrieval=true 설정을 추가해줘야합니다.J JDBC 주소를 예시로 하자면 아래와 같습니다. jdbc:mysql://localhost:3306/database?allowPublicKeyRetrieval=true&useSSL=false
2022.01.22 -
Jquery Click Event Bubbling 방지
간혹 Jquery 클릭 이벤트 실행시 1회가 아니라 여러 번 실행되는 경우가 있습니다. 이런 현상이 나타나는 이유는 사용자가 마우스로 버튼을 클릭했을 때 버튼을 감싸고 있는 부모 태그들도 이 클릭 이벤트에 반응을 하기 때문입니다. 이러한 현상을 Bubble Up이라고 합니다. 이러한 Bubbling을 해결하는 방법은 아래의 방법들이 있습니다. .off() 사용 $(element).off().on('click', function () { // body });.off() 메서드는 이벤트를 바인딩 해제하는 경우에 사용하는게 적절합니다. 그래서 .on() 메서드의 이중 로딩으로 발생하는 중복 실행 오류를 숨길 수는 있어도 좋은 접근법이 아니라고 합니다. .stopPropagation() 사용 $(..
2022.01.14 -
Apache 서버 업데이트 이슈
최근 Apache 보안 이슈로 인해 서버를 업데이트를 하며 여러 문제가 발생해 해당 이슈와 해결 방안에 대해 정리를 해봅니다. 참고로 서버는 Centos 6과 7버전입니다. libpcre.so.0 cannot open shared object file no such file or directory 여기서 libpcre는 정규 표현식을 지원하는 라이브러리입니다. .so가 붙는 파일들은 리눅스의 동적 라이브러리 파일로 프로그램 실행 후 필요할 때 호출됩니다. 에러 내용을 보면 libpcre의 동적 라이브러리를 찾을 수 없다는 내용입니다. 이러한 문제를 해결하는 방법은 아래와 같습니다. 링크 재생성 일반적으로 libpcre.so.0나 libpcre.so.1은 /lib나 /lib64 디렉토리 내부에 libpcr..
2021.12.01