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
운영게시판
최근게시물
CUBRID Q&A 1239 게시물 읽기
No. 1239
Q.동시다발적인 접근시, 가끔 객체가 닫혔다고 나옵니다.
작성자
enoeht
작성일
2008-10-01 00:59
조회수
5,577

Java JDBC환경인데요,

 

자바로 소켓 서버를 만들어서 클라이언트들이 통신을 하고 있습니다.

 

 

그래서 클라이언트마다 쓰레드가 하나씩 있구요,

 

또 다른곳에는 0.1초마다 반복 실행되는 쓰레드가 또 있습니다.

 

 

 

이런식으로 0.1초 마다 db내용이 계속 갱신되고,

 

또 클라이언트가 통신을 할 때 마다 db내용이 계속 갱신됩니다.

 

 

 

이런 환경에서, 가끔씩

 

Attempt to access a closed ResultSet 이라는 오류가 나는군요

 

어떨땐 Attempt to access a closed PrepredStatement 가 나오기도 합니다.

 

해결 방법이 없을까요?

 

 

 

지금 모든 쓰레드들은 하나의 클래스 안에 들어있는데,

 

이 쓰레드들이 하나의 CUBRIDConnection 객체를 공유해서 써도 괜찮나요?

 

아니면 쓰레드별로 각각 커낵션을 만들어줘야 하는건가요...?

 

 

 

그리고 지금은 연결을 공유하는데..

 

0.1초 마다 반복되는 쓰레드에서도 계속 commit를 해주고,

 

각 클라이언트 쓰레드에서도 통신이 올 때 마다 commit를 하는데요

 

이래도 괜찮나요?

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

Attempt to access a closed ResultSet 경우는 주로  한 트랜잭션에서 한 개의 ResultSet이 close()되기 전에 다른 ResultSet을 생성할 경우 앞의 ResultSet은 autoCommit되어 결과 셑이 닫혀버리면서 발생하는 데 이와 같이 동시에 여러 개의 ResultSet이 필요한 경우엔 autoCommit을 false로 설정해야 합니다.

관련하여 좀더 자세한 사항은 FAQ&TIP개시판의 “Attempt to access a closed ResultSet.”이라는 오류발생을 참고하시기 바랍니다.

 

Attempt to access a closed PrepredStatement 도 같은 맥락으로 ResultSet이 close되면 PreparedStatement도 close됩니다. 또한 트랜잭션 commit 되어도 close됩니다.

따라서 이부분도 ResultSet과 마찮가지로 autoCommit 을 false로 설정하시면 될 겁니다.

 

 

>Java JDBC환경인데요,

>

>자바로 소켓 서버를 만들어서 클라이언트들이 통신을 하고 있습니다.

>

>

>그래서 클라이언트마다 쓰레드가 하나씩 있구요,

>

>또 다른곳에는 0.1초마다 반복 실행되는 쓰레드가 또 있습니다.

>

>

>

>이런식으로 0.1초 마다 db내용이 계속 갱신되고,

>

>또 클라이언트가 통신을 할 때 마다 db내용이 계속 갱신됩니다.

>

>

>

>이런 환경에서, 가끔씩

>

>Attempt to access a closed ResultSet 이라는 오류가 나는군요

>

>어떨땐 Attempt to access a closed PrepredStatement 가 나오기도 합니다.

>

>해결 방법이 없을까요?

>

>

>

>지금 모든 쓰레드들은 하나의 클래스 안에 들어있는데,

>

>이 쓰레드들이 하나의 CUBRIDConnection 객체를 공유해서 써도 괜찮나요?

>

>아니면 쓰레드별로 각각 커낵션을 만들어줘야 하는건가요...?

>

>

>

>그리고 지금은 연결을 공유하는데..

>

>0.1초 마다 반복되는 쓰레드에서도 계속 commit를 해주고,

>

>각 클라이언트 쓰레드에서도 통신이 올 때 마다 commit를 하는데요

>

>이래도 괜찮나요?

 

손승일님이 2008-10-02 16:49에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1243Q.boolean, array
강훈식
2008-10-03
5090
1241Q.질문드립니다. [1]
류재훈
2008-10-02
4756
1240Q.FreeBSD 지원계획은 없으신지요? [1]
ienfant
2008-10-02
4890
1239Q.동시다발적인 접근시, 가끔 객체가 닫혔다고 나옵니다. [1]
enoeht
2008-10-01
5577
1238Q.JDBC-ResultSet객체에서는 updateXXX계열 메소드가 안되나요?
enoeht
2008-09-30
4917
1237Mysql 의 Memory, HEAP 과 같은 메모리 기반 테이블 생성이 가능한지요? [1]
박정민
2008-09-30
5740
1236Q.다중쓰레드 서저 구성시 질문. [1]
API Classer
2008-09-30
5339
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.057초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다