Background Image
조회 수 28035 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Attempt to access a closed ResultSet(PreparedStatement) 과 같은 오류는 일반적으로
1.        질의의 사용 후 결과를 가져와 사용 중 commit/rollback을 수행 후 결과를 계속 가져오려 하는 경우 transaction이 종료되어 결과 셑이 닫혀버린 경우
2.        구조상 한 클라이언트에서 서버로의 질의 수행 후 특정시간(SESSION TIME OUT)동안 서버로의 요청이 없어 서버단의 미들웨어(Broker)에서 연결을 강제 종료 시킨 경우
위 2가지의 경우 발생할 수 있습니다.

1의 경우는 주로 한 개의 ResultSet이 close()되기 전에 다른 ResultSet을 생성할 경우 앞의 ResultSet은 autoCommit되어 결과 셑이 닫혀버리면서 발생하는 데 이와 같이 동시에 여러 개의 ResultSet이 필요한 경우엔 autoCommit을 false로 설정해야 합니다.
예를 들면
try {
conn.setAutoCommit(false);
query1 = "SELECT id FROM sample1";
pstmt1 = conn.prepareStatement(query1);
query2 = "SELECT result FROM sample2 WHERE id=?";
pstmt2 = conn.prepareStatement(query2);

rs1 = pstmt1.executeQuery();
while(rs1.next()){
psmt2.setString(1, rs1.getString("id"));
rs2 = pstmt2.executeQuery();
result = rs2.getString("result");
}
conn.commit();

} catch ( Exception e ) {
conn.rollback();
} finally {
if ( conn != null ) conn.close();
}

와 같이 상단에서 autoCommit을 false로 설정하고 마지막에 commit()처리를 해주셔야 합니다. 물론 exception이 발생하면 rollback()처리도 해주셔야 합니다.

2의 경우에는 큐브리드 브로커의 환경설정 중 SESSION_TIMEOUT 설정 값을 크게 늘려주는 방법으로 해결할 수 있습니다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
19 질의작성 입력된 년월 또는 두개의 날짜을 이용하여 달력 및 주차 구하기 1 성진 2016.08.10 5574
18 응용개발 CUBRID 와 DBCP의 관계 엄기호 2016.12.14 2792
17 기타 Tomcat's JDBC Pool 사용 시 JNDI DataSource 설정 손승일 2016.12.16 6490
16 기타 JBoss 사용 시 statement pooling 설정 손승일 2016.12.16 2923
15 기타 Oracle import 시 character set 변경관련 김창휘 2016.12.26 8672
14 질의작성 subquery를 이용한 튜닝예제 file 김창휘 2016.12.27 3322
13 질의작성 UPDATE에서 조인을 통해, 결과값 수정하는 방법 박동윤 2016.12.27 7172
12 질의작성 CONNECT BY 절 포함 질의 튜닝 예제 박세훈 2017.02.28 9751
11 운영관리 CUBRID 8.2.2 ~ 8.4.x 버전에서 'ALTER SERIAL ... CACHE <cached_num> / NOCACHE' ERROR 해결 방법 주영진 2017.03.08 2161
10 질의작성 loose index scan을 활용한 효과적인 쿼리 튜닝 방안 박세훈 2017.06.01 2409
9 질의작성 테이블 명세서 쿼리 1 성진 2017.08.04 3165
8 운영관리 윈도우 OS에서 java sp 사용 시 Java VM is not running 해결 방법 정훈 2017.09.04 2226
7 질의작성 JAVA_SP를 이용해서 정규표현식을 이용해서 치환을 하자. file 성진 2017.10.10 1323
6 응용개발 CUBRID PHP 드라이버 빌드와 연동방법 정만영 2018.03.07 3761
5 질의작성 입력된 날자를 이용하여 해당 주차의 모든 날자 구하기 성진 2018.04.10 1108
4 질의작성 여러개의 컬럼을 하나로 묶어주는 함수 CONCAT_WS 사용방법 엄기호 2019.01.29 7210
3 운영관리 CUBRID 브로커와 시스템 메모리 정만영 2019.03.12 2365
2 질의작성 VALUES 절 활용하기 황영진 2020.05.13 814
1 질의작성 synonym에 대하여 김민종 2023.09.07 255
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
/ 14

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales