트랜잭션4 트랜잭션 전파속성 Build Up 트랜잭션은 DBMS의 상태를 변경하는 일련의 작업 단위 이다. 기본특징으로 ACID(원자성, 일관성, 고립성, 지속성)를 가진다. 트랜잭션은 시작지점과 끝나는 지점이 존재한다. == 트랜잭션의 경계 트랜잭션의 시작은 커넥션을 가져오는 것에 시작하고 종료는 커밋 또는 롤백에 의해 종료된다. JDBC의 기본 설정은 DB 작업 이후에 바로 커밋하는 옵션이 DEFAULT이다. 그러므로 자동 커밋 옵션을 false로 해주어야 새로운 트랜잭션이 시작하게 만들 수 있다. What 트랜잭션의 전파속성은 트랜잭션 진행을 어떻게 할지 결정하는 속성이다. *어떻게 == 새로운 트랜잭션을 열어? , 없이 그대로 진행시켜?, 이어붙여버려? 가 있다. 스프링은 전파속성을 제공하는 것 만큼 새로운 개념을 이용하고 .. Spring 2023. 2. 15. 트랜잭션 주의 1. Inner Method에서의 동작 public class BooksImpl implements Books { public void addBooks(List bookNames) { bookNames.forEach(bookName -> this.addBook(bookName)); } @Transactional public void addBook(String bookName) { Book book = new Book(bookName); bookRepository.save(book); book.setFlag(true); } } Q. 해당 코드가 있고 addBook을 호출하는 Controller는 잘 호출될까? A. 해당 코드에서 발생할 수 있는 문제는 @Transaction AOP가 적용되지 않는것이다. .. Spring/주위주위 2022. 12. 23. 교착상태 교착상태란 두 개 이상의 트랜잭션A가 특정 자원(테이블 또는 행)의 잠금을 획득한 채 다른 트랜잭션A가 소유하고 있는 잠금을 요구하고 또 다른 트랜젝션B가 A가 가지고 있는 잠금을 요구하면 두 트랜잭션이 아무리 기다려도 바뀌지 않는 상태가 되는 경우를 교착상태라고 한다. 데이터베이스 관점 교착상태 T1이 잠금을 얻고 T2도 잠금을 얻은 경우. Transaction 1> create table B (i1 int not null primary key) engine = innodb; Transaction 2> create table A (i1 int not null primary key) engine = innodb; Transaction 1> start transaction; insert into B val.. CS/DataBase 2021. 5. 1. 트랜젝션 Transaction 트랙잭션이란 ? 트랜잭션의 작업의 안정성을 보장해주는 것. 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능. 사용자의 입장에서는 작업의 논리적 단위로 이해를 할 수 있고 시스템의 입장에서는 데이터들을 접근 또는 변경하는 프로그램의 단위가 된다. 트랜잭션과 Lock 잠금과 트랜젝션은 서로 비슷한 개념 같지만, 잠금은 동시성을 제어하기 위한 기능이고 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다. 잠금은 여러 커넥션하는 과정에서 동시에 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경이 가능하도록 해준다. 자원 : 레코드나 테이블 개념 트랜잭션은 꼭 여러 개의 변경.. CS/DataBase 2021. 4. 29. 이전 1 다음