Background Image
조회 수 28025 추천 수 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 응용개발 CUBRID 에서 제공하는 ODBC 함수 목록 admin 2008.11.21 26049
18 운영관리 CUBRID 사용시 방화벽 설정 3 admin 2008.11.21 30979
17 운영관리 SElinux 환경에서 CUBRID 사용하기 2 admin 2008.11.21 25505
16 운영관리 libjvm.so 찾지 못하여 서버 구동이 되지 않은 경우 admin 2008.11.21 26430
» 응용개발 Attempt to access a closed ResultSet(PreparedStatement) 오류 admin 2008.11.21 28025
14 응용개발 loadjava 사용 시 inner class 로딩은 어떻게? admin 2008.11.21 27449
13 운영관리 64bit OS 에서 사용가능한가요? admin 2008.11.21 17415
12 운영관리 데이터베이스를 다른 머신으로 옮기는 방법 admin 2008.11.21 27644
11 운영관리 HP-ux에서 jvm loading이 실패하는 경우 조치 사항 admin 2008.11.21 22432
10 응용개발 tomcat 5.5 버전 이상에서 dbcp(커넥션 풀링) 설정법 admin 2008.11.21 28526
9 질의작성 데이터 필드의 타입 변경하기 admin 2008.11.21 18418
8 질의작성 예약어를 테이블명이나 컬럼명으로 사용시 admin 2008.11.21 37271
7 응용개발 embedded sql 에서 char 사용시 주의 사항 admin 2008.11.21 19007
6 마이그레이션 MySQL의 limit 명령어 처리 1 admin 2008.11.21 32680
5 응용개발 응용프로그램에서 질의 처리시 commit/rollback 처리 문제 admin 2008.11.21 21586
4 운영관리 백업파일을 이용하여 데이터베이스가 없는 다른 서버에서 복구하는 방법 admin 2008.11.21 22031
3 질의작성 중복된 데이터에 대하여 일련번호를 붙이는 방법 admin 2008.11.21 17350
2 질의작성 중복된 데이터를 1개만 남기고 지우는 방법 admin 2008.11.21 17305
1 질의작성 select 결과중 몇개만 가져오는 방법 admin 2008.11.21 19897
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