1개 답변
- 최신
- 최다 투표
- 가장 많은 댓글
1
Aurora MYSQL 의 경우 Writer 노드와 Reader 노드로 구성되어 있습니다. Aurora DB 를 접속 하는 것은 Cluster Endpoint, Reader Endpoint , Customer Endpoint 를 통해서 접속할 수 있습니다.
쓰기 작업(트랜잭션) 의 경우 Cluster Endpoint 로 Writer 노드에서 작업이 일어날 수 있으며 단순히 조회작업의 경우 Reader Endpoint 를 통해서 접속된 Reader 에서 이루어집니다.
@Transactional(readOnly=true) 로 정의하는 경우에는 자동으로 Reader 노드로 연결이 됩니다. 따라서 트랜잭션(UPDATE, DELETE, INSERT) 작업을 수행할 수 없습니다.
트랜잭션 작업을 하기 위해서는 다음과 같이 JDBC URL 에 두개의 Endpoint 가 정의되어 있는지 확인합니다
예) jdbc-url: jdbc:mysql:aurora://클러스터엔드포인트:포트, 리더엔드포인트:포트
그리고 다음과 같이 기술해서 사용합니다. @Transactional public void update (Long id, String Name) ...
관련 콘텐츠
- 질문됨 7년 전
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 2년 전
친절한 답변 감사합니다. 내용은 그간 제가 구글링을 통해 살펴본 것과 유사해서 이해는 하고 있습니다. 일단 제가 작업한 일부 소스를 공유드리는게 더 나을 것 같이 공유를 드립니다. 괜찮으시다면 소스보시고 다시한번 의견 부탁드립니다. *기타문의: 답변주신 내용에 대해 재문의할 경우 댓글, 답변추가중 어떤 것을 사용해야 하나요?
Thank you for your kind answer. I understand the content because it is similar to what I have looked at through Googleing. I think it would be better to share some of the sources that I worked on. If you don't mind, please look at the sauce and give me your opinion again. *Other inquiries: If I ask you again about your answer, which one should I use, comment or reply? [ source ] https://bit.ly/3rOIoh6
우연히도 원인을 찾게 되어 문제를 해결하였습니다. 찾기는 어려웠지만 상위에서 readOnly=true 가 선언되어 이후 readOnly=false가 동작하지 않았었습니다.