Background Image
운영관리
2016.04.26 20:15

Invalid XASL tree node content 에러

조회 수 4477 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

server error log, cas error log 에서 "Invalid XASL tree node content" 에러 메시지가 발견되는 경우가 있다.

해당 메시지는 plan cache가 유효하지 않은 상태여서 에러가 발생하였다는 것이다.

plan cache는 한번 생성된 plan을 재 사용하기 위해 저장해두는 것으로, 동일한 쿼리가 요청되어질 때 plan 생성 단계를 거치지 않기 때문에 성능향상에 도움이 된다.

plan을 무한정 저장할 수 없기 때문에 일정 개수만큼 저장하도록 관리되고 있고, 기본 설정으로 1000개가 저장된다. (http://www.cubrid.com/manual/93/admin/config.html#plan-cache-parameters )

쿼리 처리에 따른 plan은 아래 절차에 의해 처리된다.

1.     Prepare 단계에서 해당 쿼리에 대한 plan plan cache에 존재하는지 확인

2.     존재하지 않으면 plan 생성

3.     존재하면 plan 생성 작업 생략하고 plan cache id 전달

4.     Execute 단계에서 plan cache id를 가지고 plan 확인하여 쿼리 실행

위 단계 중 3에 해당되어 execute 진행 중 plan 확인하는 과정에서 실제 plan이 존재하지 않아 “Invalid XASL tree node content” 오류가 발생하는 것이다.

해당 오류가 발생하면 prepare 단계부터 다시 수행하여 plan을 생성하고 처리한다.

오류 메시지는 내부 기록되기만 하고 쿼리를 호출한 응용에 전달되지는 않으므로 사용자는 오류 발생 여부를 인지하지 못한 상태에서 재 처리가 완료된다.

아래는 오류 발생 시 기록되는 sql log 예제이다.

Execute 실패하여 prepare 부터 다시 수행됨을 볼 수 있다.

04/19 18:57:20.339 (58) execute srv_h_id 14 select * from foo where a=? and b=?

04/19 18:57:20.339 (58) bind 1 : NUMERIC 1

04/19 18:57:20.339 (58) bind 2 : NUMERIC 2

04/19 18:57:20.339 (58) execute error:-10024 tuple 1 time 0.000, EID = 249

04/19 18:57:20.340 (0) check_cas 0

04/19 18:57:20.341 (204) prepare 0 select * from foo where a=? and b=?

04/19 18:57:20.342 (204) prepare srv_h_id 160

04/19 18:57:20.342 (204) execute srv_h_id 160 select * from foo where a=? and b=?

04/19 18:57:20.342 (204) bind 1 : NUMERIC 1

04/19 18:57:20.342 (204) bind 2 : NUMERIC 1

04/19 18:57:35.763 (204) execute 0 tuple 1 time 0 

참고로 Cas log에는 -10024 오류가 기록되고, DB Server log에는 -452 오류가 기록된다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
279 질의작성 한건의 데이타를 여러건으로 조회하는 쿼리입니다. 권호일 2012.03.30 9419
278 운영관리 한 호스트내의 DB경로 변경 방법 janus 2010.02.19 12267
277 CUBRID 매니저 한 개 PC에서 CUBRID7.3과 CUBRID2008R1.4 & R2.0 매니저 사용 방법 1 정만영 2009.12.12 13054
276 응용개발 패키지 형태로 생성된 JAVA class를 JAVA SP에서 사용하기 손승일 2010.02.26 18375
275 기타 테이블에 comment 사용하기 1 남재우 2010.01.01 21051
274 질의작성 테이블 컬럼 변경 및 추가 정만영 2016.02.29 21837
273 질의작성 테이블 용량 산정 쿼리 성진 2015.12.08 7398
272 운영관리 테이블 사용량 확인방법 정만영 2015.02.03 11451
271 CUBRID 매니저 테이블 명세서 한 시트로 합치기 file 성진 2015.12.24 16523
270 질의작성 테이블 명세서 쿼리 1 성진 2017.08.04 3165
269 질의작성 테이블 리스트 취합 SQL 김창휘 2016.03.19 5522
268 질의작성 테이블 데이터 복사 하기 정만영 2009.03.14 22301
267 마이그레이션 타 DBMS를 CUBRID로 마이그레이션 시 varchar,char 컬럼 사이즈 관련 손승일 2010.07.01 38024
266 마이그레이션 타 DB 에서 마이그레이션시 질의 변경 샘플 - CASE 문 웁쓰 2009.12.31 21924
265 운영관리 큐브리드와 hostname 관계 정만영 2009.06.25 18583
264 운영관리 큐브리드매니져를 이용한 데이터베이스 자동 백업 남재우 2009.04.01 19052
263 운영관리 큐브리드 포트 정리 정만영 2016.07.05 6091
262 운영관리 큐브리드 서비스 재구동 시 cubrid manager server start: fail 오류 해결 방법 진우진 2015.12.16 7731
261 운영관리 큐브리드 사용포트 정리 3 정만영 2009.06.19 29775
260 운영관리 큐브리드 복제 구성 시 마스터 데이터베이스 백업 주의사항 정만영 2010.02.11 12591
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

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