본문 바로가기
Springboot

Springboot_ [Error] Could not open JPA EntityManager for transaction

by JunsC 2024. 8. 12.
728x90

서버에서 운영하고 있는 로그 중 nohup.out 로그를 살펴보았다.

근데 위의 내용처럼 

[Error] Could not open JPA EntityManager for transaction

이런 에러가 있는것이다.. 근데 한번만 있는게 아니라 일정시간 계속 저 에러 로그가 쌓여있는것이다.

 

이상하다.. 찾아보니 

@Transactional

이 트랜잭셔널 어노테이션에 대한 문제인 것 같았다.

<내가 이해한 의미>

DB 와 어플리케이션에서의 상호작용을 통해 데이터를 주고 받는다 .
이때 @Transactional 는DB와 어플리케이션에서 서로 데이터를 주고 받을 수 있도록 커넥션을 생성해주도록 하는 역할을 하는 것이다.
쉽게 말하면 트랜잭션은 DB와 앱의 상호작용을 다 마칠때까지 기다려주는 역할을 하는 것이다.
그리고 다시 커넥션은 반납하게 되고 , 요청시 다시 커넥션 생성하고 작업이 완료될때까지 기다리다 다시 반납해주는 것이다.

 

근데 이 트랜잭션이 안만들어 졌다는 의미는 아직 커넥션이 반납되지 않았거나 , 커넥션 풀 의 갯수가 적어서 할당될 수 없었던 의미이다.

 

이러한 문제가 생긴 이유에 대해 확인해보았을떄 ......

 

두둥...

 

스케쥴러에 어노테이션이 있었던것이다..

 

.... 뭐지 .. ???

 

오타였다...

 

즉,, 

@Transactional 는 DB 와 연결시 필요로 하는 어노테이션이다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."