소개
woowacourse
게시글
질문&답변
2023.11.06
named lock vs 비관적 락
많은 분들이 비관적 락에는 타임아웃(timeout)을 걸 수 없어서 데드락의 위험이 있다고 하지만 동훈님 말씀대로 비관적 락에도 @QueryHint 또는 em.persist에 타임아웃 속성을 걸 수 있습니다. @Lock(LockModeType.PESSIMISTIC_WRITE) @QueryHints({@QueryHint(name = "javax.persistence.lock.timeout",value = "1000")}) @Query("update Member set m.name = :name where id = 1") void update(@Param("name") String name); 우선 비관적 락은 for update 구문으로 레코드 레벨에 잠금을 겁니다. 이렇게 레코드 레벨에락을 걸어버리면 해당 태스크의 트랜잭션 뿐만 아니라 다른 태스크들을 처리하기 위한 커넥션들도 락이 걸린 레코드에 접근하지 못한다는 특징이 있습니다.반면에 네임드 락의 경우 락의 대상이 테이블이나 레코드 또는 auto_increment와 같은 데이터베이스 객체가 아니라는 점입니다. 네임드 락은 단순히 사용자가 지정한 문자열(String)에 대해 획득하고 반납(해제)하는 잠금입니다.그렇기 때문에 동시성이 발생하는 트랜잭션에 대해서 동시성 이슈를 안전하게 처리할 수 있으면서, 다른 태스크들을 처리하기 위한 커넥션에는 전혀 영향을 주지 않을 수 있다는 장점이 있어보입니다.
- 0
- 1
- 1.1K
질문&답변
2023.06.14
port in use 8080 에러
ubuntu@ip-172-31-38-197:~$ ps -ef | grep javaubuntu 5953 5908 0 Jun02 ? 00:21:37 java -Duser.home=/var/jenkins_home -Djenkins.model.Jenkins.slaveAgentPort=50000 -Dhudson.lifecycle=hudson.lifecycle.ExitLifecycle -jar /usr/share/jenkins/jenkins.warubuntu 584508 584483 0 06:31 pts/0 00:00:00 grep --color=auto java해당 명령어를 입력한 다음 grep --color=auto java pid를 죽이면됩니다.
- 0
- 2
- 501
질문&답변
2021.11.18
intellij 실행이 안됩니다.
해결했습니다. 감사합니다.
- 1
- 5
- 14K
질문&답변
2021.11.18
intellij 실행이 안됩니다.
버전 11으로 전부다 맞추었지만 여전히 메인클래스 인식이 안됩니다. 그냥 이클립스 쓰는게 나을까요(사진)
- 1
- 5
- 14K
질문&답변
2021.11.18
intellij 실행이 안됩니다.
위에 알려주신 내용대로 해도 작동하지 않습니다 ㅠㅠ..(사진)Main class에 문제가 있는것같은데 설정하려고 해도 이렇게 뜹니다..(사진)옆에있는 프로젝트 메뉴를 들어가도 현재 프로젝트가 보이기만하고 확인버튼이 비활성화되어있습니다. 부탁드립니다.
- 1
- 5
- 14K