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 21896 게시물 읽기
No. 21896
[급!]동시 사용시 테이블 점유에 대해서...
작성자
궁실
작성일
2005-03-04 09:35ⓒ
2005-03-04 16:15ⓜ
조회수
1,455

사용언어 :asp

DB : oracle 8i

 

도서관리 프로그램에서요..

대출관 반납에 관한 문제 인데요..

대출이 이루어 지면. BookInfo_TB.STATUS = 1 로 세팅하고.

BookRent_TB 에 대출자 대출책,대출시간 등을 Insert 합니다..

 

반대로 반납이 이루어 지면 BookInfo_TB.STATUS='' 로 세팅하고

BookRent_TB 에 반납일을 UPDATE하는데요..

 

대출처리는 StoreProcedure로 만들었고,

반납처리는 ASP 코딩으로 처리했습니다.

물로 ASP 코딩에서 트랜젝션을 사용했구요..

 

대출시에서 BookInfo_TB.STATUS='1' 로 Update가 안되는 경우 아주 간혼 생깁니다.

또한 반납시에도 BookInfo_TB.STATUS='' 로 Update 하고 BookRent_TB.Return_Date = sysdate Update 해야 하는데 둘중에 한나가 안되는 경우가 생깁니다...

 

대출이나 반납은 빈번히 이루어 지고 있거든요. 그래서 의심이 가는 점이 있다면.

update 처리시 문제가 생기니깐요. Update시 수정할 테이블이 다른 세션(클라이언트)에서 점유하고 있을 경우 이런 경우가 생길 수 있나 하거든요....

 

 

아니면 단순히 프로그램을 의심해봐야 하는데...

프로시져나 프로그램상의 오류는 발견하지 못햇습니다.

 

답변 부탁드립니다..

 

 

 

 

 

 

 

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

둘다 SP 쓰셔서 하시고요

중간에 commit 하지 마시고요

protokhs님이 2005-03-04 16:37에 작성한 댓글입니다. Edit

같은 테이블에세 대해서 하나는ASP 코딩으로 처리하고 ..

하나 SP로 사용해서 그런가요?

.SP 를 사용하면 괜찮을까요?

 

궁실님이 2005-03-07 13:57에 작성한 댓글입니다. Edit

뒤늦게 답변을 올립니다만...

ASP를 사용하신다면

ODBC 나 ADO 혹은 ASP.NET이라면 ADO.NET을 사용하실 텐데요

얘네들은 기본이 Auto-Commit입니다.

MS-SQL서버 및 SYBASE 계열이 Block-Lock 및 임계점 이상의

LOCK에 대한 테이블락으로의 에스칼레이션이라는 LOCK 기법을

사용하기 때문에 동시 사용자에 대한 배타적 작업에 무리가 있어서

MS-계열의 데이타베이스 드라이버는 항상 Auto-Commit을 기본으로

합니다.

제가 ODBC 및 ADO는 안써봤구요

ADO.NET의 경우는 Auto-Commit이 안되도록 설정이 가능하지만

만약 어떤 형식으로든 Auto-Commit이 사용되는 경우의 트랜잭션 제어 및 데이타 무결성 확보는 상당히 문제가 됩니다.

그렇다면 Auto-Commit을 안쓰는 PL-SQL SP로 작성후 SP네에서 Commit 하지 않는다면 트랜잭션 제어를 하실 수 있으니

실수가 없을 것이기에 둘다 SP를 쓰시라고 말씀 드린 겁니다.

그리구 제일 빠르고 안전하구요

또 만약 그런데도 문제가 발생한다면

그건 아마도 설계나 코딩상의 문제이므로 정밀 진단을 하셔야 한다는

말씀이죠

김흥수(protokhs)님이 2005-03-11 01:31에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
21899import (임포트) 할때 다른 테이블 명으로 들어갈순 없을까요? [4]
이상훈
2005-03-04
1503
21898특정컬럼이 포함된 테이블 조회 [1]
궁금이
2005-03-04
1370
21897inline view join을 일반 join으로 바꾸려면? [1]
송찬의
2005-03-04
1556
21896[급!]동시 사용시 테이블 점유에 대해서... [3]
궁실
2005-03-04
1455
21895쿼리문을 어떻게 작성해야 할지.. [1]
이찬희
2005-03-04
1267
21894Oracle10g(Windows2003)conn / as sysdba --error??? [2]
구리구루
2005-03-04
2174
21892고수님들 부탁 드립니다. tablespace 사이즈가 갑자기 증가 했네요? [2]
임은식
2005-03-03
3110
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다