* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
Linux 64bit (RHEL8) |
|
cubrid 11.2 |
|
- |
|
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요.
큐브리드로 신규 구축된 DB로 시스템 서비스 중에, 운영서버에서 에러 로그가 확인되는데 응용 시스템 쪽에서 오류파악이 어려워 내용 질문 드립니다.
로그에 부득이하게 서버 정보가 노출되어 에러 구문만 타이핑 하여 질문드립니다. 혹시 해당 에러에 대한 해결방법이 있을까요? 현재 추정하는 것으로는 DB 테이블과 관련하여
에러가 발생하는것으로 추정하고 있습니다. 바쁘시겠지만 확인 한번만 부탁드리겠습니다.
[에러로그]
### Cause : cubrid.jdbc.driver.CUBRIDException : Instances of a reusable OID class are non-referable. This operation is not permitted on non-referable instances.
error code [-983]
(https://www.cubrid.org/manual/ko/11.2/sql/schema/table_stmt.html#create-table 참조)
오류메세지만 남겨주셔서 정확한 오류에 대해 설명드리기는 힘들고 발생한 오류는 oid를 이용한 질의 또는 diver(JDBC, ODBC 등)에서 oid를 관련된 operation을 수행시 발생하는 오류 메세지입니다.
오류 해결 방법은
1안) 오류 발생한 질의 또는 operation을 oid가 참조되지 않게 수정
2안) 대상 table을 dont_reuse_oid로 변경
- 테이블 특성을 표현하는 option이므로 재구성이 필요합니다. (데이터 unload -> drop table -> create table -> 데이터 load 또는 rename table, create table as select 를 통해 수행)
- dont_reuse_oid option은 삭제된 oid 정보를 유지하는 특성이 있어, 반복적인 insert/delete 가 발생하는 환경에는 reuse_oid option에 비해 table의 페이지 량이 커져 full scan 등의 성능 저하가 발생할 수 있습니다.