일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- migration 작업순서
- executeUpdate() commit
- oracle commit
- Thymeleaf 오류#Thymeleaf Exception processing template ""
- var 와 let의 차이점
- 프로그래머스 #코딩테스트 #입문 #lv.0 #나머지구하기
- 개발자 면접 질문
- linux'|'
- mariadb migration
- The JAVA_HOME environment variable is not defined correctly
- AWS회원가입
- Springboot WebPage 배포
- mysql migration
- linux uniq -u
- Bandit Level 7 → Level 8
- aws ec2 putty 연결
- 톰캣 실행 에러
- EC2 인스턴스 생성하기
- 코딩일기
- aws ec2 window
- wargame bandit7
- 톰캣 독립실행
- Bandit Level 8 → Level 9
- 마이그레이션 작업순서
- gradle 배포
- SQL vs PL/SQL
- banditlevel8
- commit 안찍힐 때
- linux grep
- ExecuteUpdate()
- Today
- Total
"코딩세끼"
Oracle_Lock 본문
입문자 사유 :
update 문을 전송하고 commit을 안한 상황 : 해당 상황이 더욱 Lock을 길게 만드는 상황을 초래 할 수 있다.
운영되고 있는 서버에 작업을 할 때 수동 update 문 작성 후 항상 commit을 날려야 한다. 그렇지 않으면 lock에 걸려 내 session과 SID가 날리는 쓰기,수정하기,지우기 문을 무시 할 수 있다. 이런 상황을 lock 이 걸렸다고 표현하는데, 단순히
사람의 실수에서만 비롯되는 것은 아니다. Auto Commit 기능이 없는 API 또는 언어를 사용 할 때 항상 확인 해야하는 습관을 들여야한다. code를 작성하는 일도 사람이 작성하는 지라, (사람에게서 비롯되네요 ㅎㅎ) 조심해야 할 것이다.
확인하는 방법은 lock의 원인이 되는 session 및 sid를 확인해서 제거하거나 죽여주는 것.
sqltools 에 보면 session을 확인할 수 있는데, 그것을 확인 함으로 어느 명령에서 lock이 잡혔는지 알 수 있다.
또한, 누가 그랬는지도 알 수 있다.
======================================2022.07.01.============================================
lock 의 원인 :
코드상 JSP 파일에서 executeUpdate(); 를 쓰는 구문이 있는데
해당 JDBC API가 제대로 읽혀지지 않아 AutoCommit이 정상작동하지 않은 것으로 확인 됐다.
lock의 해결 :
ExecuteUpdate() 구문에 AutoCommit의 기능의 오작동을 확인 했으므로, 해당 구문의 정상작동 원리를 파악하여 시간을 사용하는 것 보다는, 사용자의 입장에서 일단 기능을 정상작동을 하게 해놓고 파악해 보는 것이 좋겠다 생각돼, 코드에 먼저 Commit을 강제로 실행하게 했다.
<%
Connection conn = ds.getConnection();
conn.commit() %>
lock은 해결 되었고, 해당 구문이 이상없이 commit을 나중에 한번 찍더라도 문제가 되지 않는지 모니터링 했다.
<<< A few moments later >>>
이상없이 잘 작동 되었다.
이상 주절주절 글 읽어주셔서 감사합니다.
'프로그래머로 전직하기 > DataBase' 카테고리의 다른 글
SQL vs PL/SQL (0) | 2022.04.05 |
---|---|
[AWS] EC2 가상서버 구축하기 (0) | 2022.02.21 |
SQL 오류: ORA-00984: 열을 사용할 수 없습니다 (0) | 2022.01.13 |
SQL 오류: ORA-00911: 문자가 부적합합니다 (0) | 2022.01.13 |