전체

    [Spring] 이중 트랜잭션으로 인한 PessimisticLockingFailureException

    최근에 PessimisticLockingFailureException 예외를 마주쳤다.이번에 내가 겪은 사례는 조금 특이한 구조에서 발생했다.상황 요약A 프로젝트가 B 프로젝트의 API를 호출한다.A와 B 모두 트랜잭션을 사용한다.B에서 JPA로 flush() 를 수행했는데 이 시점에 PessimisticLockingFailureException 이 발생했다. 원인핵심은 이중 트랜잭션 구조에 있다.A 프로젝트에서 트랜잭션이 열린 상태로 B를 호출한다.B에서도 트랜잭션이 별도로 시작된다.B에서 JPA가 엔티티를 비관적 락(PESSIMISTIC_WRITE)으로 조회한다.flush() 시점에 락을 걸 수 없어서 예외 발생:A 쪽 트랜잭션이 락을 보유하고 있거나,DB가 락 획득에 실패하거나 타임아웃이 발생한 경..

    [ElasticSearch] 검색 방식, 장애 복구 정리(Circuit Breaker Exception)

    검색 방식from 방식GET my_index/_search{ "from": 100000, "size": 10, "sort": [{ "timestamp": "asc" }]}이 요청은 100,000번째 문서부터 10개를 반환하는 것이 목적입니다.페이지를 쉽게 이동할 수 있으나 깊은 페이지일수록 느립니다.Scroll APIPOST my_index/_search?scroll=1m{ "size": 1000, "sort": [ { "timestamp": "asc" } ], "_source": true} 이전 페이지 한 개만 유지하는 것이 아니라, 처음 요청 이후 모든 스냅샷 데이터를 유지하므로 백업 용도가 아니면 보통 사용하지 않는다. Search AfterPOST my_index/_search{..

    코뿔소 - 외젠 이오네스코

    이 책의 큰 흐름은 말도 안되는 소리를 하며 주위 사람들에게 강요하는 사람들이 코뿔소로 변해가는 집단주의, 전체주의 파시즘을 희화화 하는 책이다. 책의 내용은 대부분 자신의 생각이 잘못됐을지라도 다른 사람에게 자신의 생각을 강요하는 형태로 흘러간다.그 사회의 시스템을 만들어 내는 사람들을 의미하기도 하지만 사회의 시스템을 곧이 곧대로 따라가는 사람을 의미한다고 느끼기도 했다. 읽다보면 전체주의를 옹호하지 않더라도 어디까지가 전체주의인가에 대해 고찰하게 되었다. 어떤 표현까지가 전체주의가 아닌 것이고 전체주의인 것일까 나의 작은 한마디도 누군가에게 전체주의 사상을 주입하는 것은 아닐까 아이러니한 점은 책에서 나오는 강압적인 등장인물들은 모순적이라고 느꼈다. 전체주의에 따르지 않기 위해서 배우고 느꼈지만 그..