1 . 문제정의
1:1문의 게시판 글쓰기를 할때 파일업로드와 게시글을 동시에 DB에저장을한다.
그런데 둘중하나가 실패해도 나머지하나가 정상적으로 DB에 저장되는 문제
2. 원인추론
- 게시글작성 과 이미지저장 서비스를 각각 따로 commit을 하기때문에 둘중에 하나라도 실패해도
나머지하나는 commit을 실행하기때문에 실패를 해도 나머지는 DB에 저장되는거같다.
commit과 rollback를 관리하는 service를 수정을 해야할거같다.
3. 해결 방안
- 게시글 작성과 이미지 업로드를 하나의 service에서 관리를하고 service에서 게시글이 정상적으로 insert가 된다면
그이후에 이미지 업로드 dao를 실행을 해서 성공했을시 commit을 하도록 트랜잭션 분기처리를 한다.
4. 결과
둘중에 하나라도 실패한다면 게시글은 작성되지않고 DB에저장되지않는다.
두개다 모두 정상적으로 실행됐을시에만 commit을 하여 DB에 저장이된다.
'프로젝트 > 트러블 슈팅' 카테고리의 다른 글
[트러블 슈팅] youtube영상 업로드 문제 (1) | 2024.01.09 |
---|