728x90 반응형 Spring9 [Spring] OutOfMemoryError - GC overhead limit exceeded 원인 분석 및 해결 OOM 이 발생하면 일반적으로 두 가지를 경험한다. 1. java heap space 2. GC overhead limit exceeded ❓ 원인 분석- java heap space heap 영역의 공간이 부족해서 발생하는 오류(주로 코드 내 메모리 누수) - GC overhead limit exceeded 1. GC가 자주 발생하여 오버헤드 발생 2. GC를 수행하는 시간의 98%를 소비했지만, Heap 메모리의 2% 미만으로 복구 3. 응용 프로그램이 모든 메모리를 소진했고, GC 소요 시간이 너무 길고, 반복적인 실패를 할 때 같은 OOM 이지만 살짝 다른 의미를 지닌 에러이다. 일반적으로 코드 단에서 메모리 누수를 개선하거나, JVM Heap 사이즈를 증가시켜 해결하는 방법이 많이 보였다. [.. 2024. 11. 20. [Spring/Mybatis] 마이바티스 조회 시 NULL 반환 이슈(returnInstanceForEmptyRow) 버전 업그레이드 프로젝트 중 발견한 사항을 기록합니다.기존 버전에는 오류가 나지 않았으나, 버전 업그레이드가 된 버전에서는 오류가 발생하여 해당 원인을 파악하고 해결방법을 찾아 기록합니다. Mybatis에서 조회 시 Null이 반환되어 NullPointerExeception(NEP)가 발생 비즈니스 로직 내 코드나 쿼리가 변경된 것은 없었습니다.기존 프로젝트에선 Null을 반환하지 않았는데, 신규 프로젝트(버전업)에서는 Null이 반환되었습니다. 테스트 케이스는 아래와 같습니다. SELECT PHONE_NUMBER FROM USER WHERE USER_ID = 'TESTID' 위와 같이 한 컬럼만을 조회하는 쿼리를 실행하는데, 조회되는 ROW(데이터)는 있지만 null이 허용된 컬럼으로 컬럼 내 데이.. 2024. 6. 24. [Test] ConnectionTimeout / ReadTimeout 테스트 하기 Connection Timout, Read Timeout 테스트하기 타 시스템과 연동 시 타임아웃 설정은 필수적이다. 그 이유는 설정을 해주지 않으면, 무한으로 대기하는 현상이 발생할 수 있다. 테스트하는 방법에 앞서, Connection Timeout과 Read Timeout에 대해 간단하게 이해하고 넘어가자 급한 사람들을 위해 Connection Timeout 테스트 시 사용할 URL > http://example.com:81 Read Timeout 테스트시 사용할 URL > http://httpbin.org/delay/10 Read Timeout은 마지막 URL 숫자가 처리 시간을 의미한다. http://httpbin.org/delay/10 > 10초 http://httpbin.org/delay/3.. 2024. 4. 9. [SpringBoot] H2 데이터베이스 PostgreSQL 모드로 변경하기 스프링부트 프로젝트에서 테스트를 위한 데이터베이스로 H2를 사용하고 있는데, PostgreSQL 모드로 변경하는 방법을 알아봅니다. 공식 문서에서 쉽게 찾아볼 수 있었는데, MODE=PostgreSQL만 설정에 적어두면 된다고 합니다. 자세한 내용은 공식 홈페이지 확인 : https://www.h2database.com/html/features.html#in_memory_databases Features Features Feature List H2 in Use Connection Modes Database URL Overview Connecting to an Embedded (Local) Database In-Memory Databases Database Files Encryption Database F.. 2024. 3. 13. 이전 1 2 3 다음 728x90 반응형