본문 바로가기

TransactionSynchronizationManager2

[#7] TransactionManager가 DataSource정하는 로직을 늦추기 - LazyConnectionDataSourceProxy tjdrnr05571.tistory.com/14?category=876333 Mysql Replication Spring에서 Master/Slave 이중화 with Docker 이글에선 단일서버에서 Mysql Replication을 port를 나누어 하는 방법을 다룹니다. 목차 - 내 프로젝트에서 Mysql Replication을 사용해야 하는 이유 - Mysql Replication의 동작 원리 - Docker로 Mysql 컨테이너.. tjdrnr05571.tistory.com 위 링크에서처럼 Mysql Replication을 Spring에서 구현하던 중 @Transactional로 트랜잭션을 시작 시켜줄 때 DataSource가 무조건 기본 Master DataSource로만 쿼리가 가는 문제가 생겼.. 2020. 12. 5.
[#3] 정확히 트랜잭션이 롤백 되었을 때 장바구니를 복원하기 -TransactionSynchronization afterCompletion (Rollback hook) @Transactional을 적용하여 어떠한 메소드를 실행한다면 롤백이 되었을 때 DB에 관련된 추가, 삭제등 로직은 @Transactional에 적용되어있는 AOP 로직에 의해 저절로 롤백이 됩니다. 하지만 레디스나 다른 스토리지에 어떠한 데이터를 추가하거나 삭제할 시 이를 수동으로 롤백시켜줘야 합니다. try-catch문을 이용하여 롤백되었을 때 로직을 처리해줄 수 있기는 합니다. 보통은 @Transactional 메소드 안에서 try catch문을 이용하여 RuntimeException이나 Error가 생겼을 시 롤백이 되면 catch문에서 잡는 방식으로 롤백이 되었을 때 로직을 수행하는데 이는 문제점이 있습니다. 롤백이 되었을 때 RuntimeException이나 Error가 생겨서 catch문 .. 2020. 10. 15.