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
운영게시판
최근게시물
Sybase Q&A 1274 게시물 읽기
No. 1274
transaction 관련하여 테스트한 결과 문의 드립니다.
작성자
최유복(럭키뽀기)
작성일
2005-09-02 18:05ⓒ
2005-09-02 18:07ⓜ
조회수
4,509

밑에 제가 올렸던 질문과 같은 맥락의 질문같은데요...

 

다시 한번 고견을 부탁드립니다.

 

테스트 시나리오.

1. tbl400 테이블을 생성하고 data를 insert 합니다.

create table tbl400 ( idx integer, code varchar(20) );
insert into tbl400 values(1, 'merong');
insert into tbl400 values(2, 'merong');
commit;

2. java로 program을 하여 transaction test를 합니다.
2.1 update tbl400 set code = 'babo' where idx = 1;
문장을 A라는 class에서 PreparedStatement를 생성하여 수행하고
10초동안 commit을 하지 않고 대기합니다.
2.2 update tbl400 set code = 'babo2' where idx = 2;
문장을 B라는 class에서 PreparedStatement를 생성하여 수행합니다.

3. 위까지 실행할 경우 B class에서 A class가 끝나기 전까지 아래와 같은 error message가 나옵니다.
com.sybase.jdbc2.jdbc.SybSQLException: ASA Error -1000029: Cannot open the requested object for write in the current transaction (7229). Another user has wri
te access in transaction 7228.
-- (db_catx.cxx 1125)

4. A class에서 수행한 query(2.1)가 10초의 대기 시간이 끝나고 PreparedStatement를 close하고
commit 하고 끝냅니다.

5. 이때 B class에서는 다음과 같이 error message가 바뀌어서 나옵니다.
com.sybase.jdbc2.jdbc.SybSQLException: ASA Error -1000011: Transaction 7229 attempted to access an object created by transaction 7230.
-- (db_catx.cxx 974)

이상이 테스트 시나리오 입니다.

제가 예상하기로는... A class에서 query의 수행이 끝나면 B class에서는 제대로 수행이 되어야 될거 같은데 error message가 바뀌어서 나옵니다.

도움 부탁드립니다.

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

오류 메시지의 내용으로 봐서 테스트중인 데이터베이스는 SYBASE IQ인 것 같습니다. 참고로 SYBASE는 3개의 서로 다른 DBMS를 제공하고 있습니다.(ASE-운영계용 RDBMS, SYBASE IQ-DW/DSS전용, ASA-개인/소형 RDBMS)

지금 경험하고 계신 내용은 SYBASE IQ에서만 나타나는 versioning이라는 현상인데요. 경험하신 내용을 해결하려면 B세션에서 commit을 먼저 수행하신후에 update등을 수행해 보세요. 기타 자세한 것은 IQ 메뉴얼중에 versioning이라는 부분을 참조하시고 IQ를 사용하시면서 이 개념을 충분히 이해하지 못하면 많은 시행착오를 격어야 합니다.

 

참고로 IQ에서는 bcp 유틸리티를 이용하지 마시고 out일 때는 extract이라는 기능을 in일 때는 load table이라는 SQL 명령어를 사용하시는 것이 성능면에서 엄청난 차이를 ...

sejiappa님이 2005-09-03 13:07에 작성한 댓글입니다. Edit

정말 감사드립니다!!!!!!!!!!!!

최유복(럭키뽀기)님이 2005-09-05 15:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1277한글이요 [1]
2005-09-06
4978
1276쿼리문 좀 만들어 주세요... 좀 급합니다... [4]
유석우
2005-09-04
4237
1275IQ ODBC 연결 오류 [1]
김상익
2005-09-04
3337
1274transaction 관련하여 테스트한 결과 문의 드립니다. [2]
최유복
2005-09-02
4509
1273BCP에서 에러가... [3]
찡어
2005-09-02
3584
1272IQ에는 sequence가 없나요? [2]
최유복
2005-09-02
4782
1271nl_write_defer 에러 관련하면 sybase 홈피에서 찾았는데요... [1]
지현
2005-09-02
3642
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다