Named Lock 이용 동시성 문제 해결


Named Lock 이용 동시성 문제 해결

Named Lock 이름을 가진 metadata Locking이다. 이름을 가진 Lock을 획득한 후 해제할 때까지 다른 세션은 이 Lock을 획득할 수 없도록 한다. 다만 Transaction이 종료될 때 Lock이 자동으로 해제되지 않는다. 별도의 명령어로 해제를 하거나 선점시간이 끝나면 해제된다. Named Lock을 사용하기 위해서 Repository를 만들어준다. get_lock을 이용해서 Lock을 얻어오고 release_lock을 통해서 Lock을 해제해준다. Named Lock을 활용할 떄는 데이터소스를 분리해야한다. 모든 Lock이 해제되지 않는다면 데이터소스가 부족해지는 현상이 발생할 수 있다. 특히 Named Lock은 커넥션을 2개 사용한다. lock 획득에 필요한 connection 1개, transaction에 필요한 커넥션 1개 같은 데이터베이스 소스를 사용한다면 커넥션 풀을 넉넉하게 잡아주자. Facade class를 만들어서 Get, release를 해...


#java #Lock #NamedLock #동시성 #자바

원문링크 : Named Lock 이용 동시성 문제 해결