spring 트랜잭션 오류 및 중복 호출되는 이슈 문의

spring 트랜잭션 오류 및 중복 호출되는 이슈 문의

작성일 2023.11.23댓글 1건
    게시물 수정 , 삭제는 로그인 필요


controller
 { 
    1) 접속정보로깅
    2) 서비스 호출
    3) return
}

service{
    1)a dao 호출
    2)b dao 호출
    3)c dao 호출
    4) return

}

간단한 처리인데요.
특정 페이지에 접속하면 controller의 특정 메소드 찾아가서 위의 3가지를 처리하고 나옵니다.
서비스에서는 a , b , c 를 마이마티스로 조회하여 리턴해주고 있습니다.

간헐적으로 서버 로그에 트랜잭션 타임아웃이 나와서 로그를 확인해보니

4시에 controller 젒속
4시0분1초에 a dao 호출
4시0분1초에 b dao 호출
4시0분1초에 c dao 호출
4시10분1초에 cdao 호출
4시10분2초에  트랜잭션 오류로그  jta사용중
(JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException)

이렇게 로그가 찍힙니다.

간헐적으로 발생하는 이슈로그가 동일한 형태입니다.

4시에 마지막 접속을 하고 
4시 1분에 cdao까지 잘 조회하여 리턴이 끝났는데
다시 새로운 컨트롤러에 진입로그가 없는 상태에서
10분정도 후 cdao호출이 다시 되었다는 로그가 찍히고 
그리고 바로 0.1초정도 후에 트랜잭션 오류 로그가 발생합니다.

실제로 고객은 마지막 접속이 4시였기 때문에 저 로그를 만나지 않았을수도 있을 것 같은데요
왜 몇분후에 저 서비스의 dao가 다시 호출이되고 트랜잭션 오류가 나는지 모르겠습니다.

중복호출이 되더라도 그러면 컨트롤러 부터 진입이되야 할거 같고,
혹시라도 서비스가 호출되었다면
a,b는 왜 호출된 로그가 안남는지 이해가 안되네요.

이렇게 발생할만한 케이스가 있을까요?

도움 부탁드립니다.

감사합니다!



#spring 트랜잭션 #spring 트랜잭션 분리 #spring 트랜잭션 전파 #spring 트랜잭션 롤백 #spring 트랜잭션 설정 #spring 트랜잭션 관리 #spring 트랜잭션 커밋 #spring 트랜잭션 예제 #spring 트랜잭션 동기화 #spring 트랜잭션 로그

profile_image 익명 작성일 -

트랜잭션 타임아웃 설정은 어떤가요? 너무 짧으면 그럴 수도 있어서..

동기화 매커니즘 쓰셔서 동시성 문제 해결하셔야 할 수도 있고,

데드락일 수도 있을 것 같아요. 쿼리는 뭐 늘 최적화하고 계실 것 같고요.

was와 oralce 간의 통시지연 문의드립...

... 930초후에 서버에서는 트랜잭션 오류로그가 남구요. 지속적으로 그런건 아니고 약 10만건의 호출중... 커넥션풀 이슈이거나 oracle써버쪽 자체의 이슈가...

갤럭시 S24 초기 구매혜택이 안됨

... 오타나 오류가 있을 수 있습니다. 기기 등록 여부 확인 기기 등록 여부를 확인하고, 이미 등록된 기기인 경우에는 중복 등록이 불가능할 수 있습니다. 기타 이슈 확인...

자주 등장하는 오라클 에러 20...

... 00150,0, "중복트랜잭션 ID" 00151,0, "부적합한... 00981,0, "테이블 시스템 감사 옵션은 함께 지정될... %s\"에 대한 지연 원격 프로시저 호출(rpc)에서 오류...

컴퓨터 오류 '블루스크린'

... linkid=50163&clcid=0x0412 위와 같은 오류가 뜨면서 자꾸... 관리자에게 문의하십시오. 52 네트워크에 중복된... 117 응용 프로그램에 의해 이루어진 IOCTL 호출이 맞지...