Spring의 트랜잭션 관리자의 활동 (시작, 커밋 & 롤백)에 대한 다양한 기록이 있습니다. 그러나 최근에는 교착 상태 문제로 인해 로깅만으로는 충분하지 않습니다.Spring 트랜잭션 내용을 기록하는 방법
우리 코드의 근본적인 문제는 트랜잭션 전파 REQUIRED 및 REQUIRES_NEW의 지저분한 사용법입니다. 많은 메소드 호출이 앞뒤로 반복되므로 많은 트랜잭션이 서로 겹쳐서 끝납니다. 아아, 코드 기반이 크고 해결책이 시급한데 ... (우리 모두는 이것이 무엇인지 압니다.)
코드가 다른 트랜잭션에서 순차적으로 수정 된 트랜잭션의 쿼리 엔터티에 추가 되었기 때문에 문제가 교착 상태였습니다. 트랜잭션. Spring은 엔티티 X의 업데이트가 잠겨 있기 때문에 타임 아웃을 알리는 예외를 발생시킵니다. 자, 이걸 알면 좋겠지 만, 오류 코드를 어떻게 발견할까요? 초기 잠금을 수행하는 쿼리.
내 질문 (마침내) : 트랜잭션에 추가되는 엔티티를 기록하는 방법이 있습니까? 이 방법을 사용하면 Spring이 불만을 제기하는 엔터티를 잠그는 트랜잭션을 찾을 수 있습니다.
감사합니다. :-)