database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 28241 게시물 읽기
No. 28241
SELECT명령어 실패시 rollback에러 발생합니다.
작성자
이철수
작성일
2006-10-12 15:00
조회수
4,300

안녕하세요. 

proc 로 멀티 쓰레드 프로그래밍을 하고 있습니다. 약 2000개 정도의 쓰레드가 돌아가고 있는데요 운영하다 보면 어쩌다  

 SELECT * FROM MEMBER WHERE ~~~~

했을때 실패가 발생하는데 메시지가 

ORA-25402: transaction must roll back

이런메시지가 떨어집니다. 

이유가 먼지 파악이 안되고 있습니다. 오라클버전은 9i for hp64입니다.

그리고 하나의 트렌젝션에서 

insert AA, update AA, select AA 했을때 insert 또는 update AA에서 lock등이 걸려서 대기중이라면 select 도 실패가 되는가요?


꼭좀 답변 부탁드립니다.

이 글에 대한 댓글이 총 1건 있습니다.

소스에서 insert -> update -> select 를 순차적으로 처리하는가보군요.



insert 는 Lock 이 걸리지 않습니다. 하지만 동일 PK값을 가지고 동시에 여러세션에서 들어오면 Lock이 걸릴 수는 있습니다. 그래서 유일성을 보장받을 수 있는 sequence 등을 쓰는게 좋겠죠.



update 의 경우 아시다시피 다른 세션에서 동일 레코드를 변경중이라면 해당 Row level lock 이 걸릴 수 있습니다. 그 세션이 풀어줄 때까지 기다려야 합니다. (commit or rollback 할 때까지...)


select 의 경우 오라클은 기다리지 않습니다. 타 DBMS는 일관성을 위해 select 도 shared lock 을 걸지만... 오라클은 영향을 전혀 받지 않습니다.

따라서 select 하는 테이블에 누가 delete, update, insert 를 하는가는 조회하는데 아무런 영향을 주지 않습니다.


다만 위의 경우 update  이후에 select 가 돌아가야하니까. update 에서 Lock을 대기해야한다면 그 후행 작업들은 당연히 처리가 안되고 있겠죠.

절차식 순차처리니까. 이건 DBMS를 떠나서 상식레벨에서 생각해보면 당연하겠지요.



나머지는 제가 사용하시는 환경을 잘모르니 정확한 답변이 힘들군요.


어쨌든, DBMS의 동시성과 Lock 처리등 전반적으로 많이 공부하셔야 그런 환경에서 확장성과 효율성을 두마리 토끼를 잡을 수 있습니다.

DBMS마다 Lock 처리나 동시성 구현이 상이합니다. MS-SQL에서 하던게 Oracle 에서는 안통할 수도 있고... 그 역도 마찬가지일 수 있습니다.



김주현님이 2006-10-12 15:20에 작성한 댓글입니다.
이 댓글은 2006-10-12 15:25에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
28245imp 시 에러는 없는데 imp가 되질 않습니다. [1]
김영일
2006-10-12
1306
28244imp-00016에러중에서요???
이현정
2006-10-12
904
28242이기종 시스템으로의 Migration [4]
도리도리
2006-10-12
1898
28241SELECT명령어 실패시 rollback에러 발생합니다. [1]
이철수
2006-10-12
4300
28240[질문] 웹에서 복사한 내용을 입력할려구 하는데..
류호태
2006-10-12
1008
28239Toad에서 cancel 버튼을 사용중 화면에서 닫아버렸습니다.
오민영
2006-10-12
940
28238Solaris-Oracle 방법좀 알려주세요..ㅡㅡ; [1]
안태건
2006-10-12
841
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2025 DSN, All rights reserved.
작업시간: 0.010초, 이곳 서비스는
	PostgreSQL v17.5로 자료를 관리합니다