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 오류가 기록된다.


  1. CUBRID 브로커와 시스템 메모리

    Date2019.03.12 Category운영관리 By정만영 Views2369
    Read More
  2. 윈도우 OS에서 java sp 사용 시 Java VM is not running 해결 방법

    Date2017.09.04 Category운영관리 By정훈 Views2229
    Read More
  3. CUBRID 8.2.2 ~ 8.4.x 버전에서 'ALTER SERIAL ... CACHE <cached_num> / NOCACHE' ERROR 해결 방법

    Date2017.03.08 Category운영관리 By주영진 Views2161
    Read More
  4. 큐브리드 포트 정리

    Date2016.07.05 Category운영관리 By정만영 Views6091
    Read More
  5. 큐브리드 마스터 소켓 디렉토리 변경방법

    Date2016.07.05 Category운영관리 By정만영 Views4218
    Read More
  6. Invalid XASL tree node content 에러

    Date2016.04.26 Category운영관리 By손승일 Views4477
    Read More
  7. 산술 연산 결과를 피젯수 또는 젯수의 자리 수에 맞춰 보자.

    Date2016.03.01 Category운영관리 By성진 Views4816
    Read More
  8. 'Has been interrupted.' CUBRIDException 발생

    Date2016.01.07 Category운영관리 By주현 Views6588
    Read More
  9. CUBRID BACKUP (linux, window)

    Date2015.12.30 Category운영관리 By박동윤 Views6246
    Read More
  10. 브로커와 DB 간 연결 테스트

    Date2015.12.29 Category운영관리 By박동윤 Views4934
    Read More
  11. cubrid plandump ( plan cache정보확인)

    Date2015.12.29 Category운영관리 By주현 Views4300
    Read More
  12. 시스템 부하가 많지 않음에도 불구하고 질의 수행이 느린 경우 THP 기능 설정 확인 및 해제

    Date2015.12.16 Category운영관리 By진우진 Views7526
    Read More
  13. 큐브리드 서비스 재구동 시 cubrid manager server start: fail 오류 해결 방법

    Date2015.12.16 Category운영관리 By진우진 Views7732
    Read More
  14. 브로커 동적 파라미터 변경 방법

    Date2015.08.13 Category운영관리 By정만영 Views7566
    Read More
  15. CUBRID HA 구성 후 구동중인 slave/replica node에서 write 하기

    Date2015.07.15 Category운영관리 By정만영 Views9043
    Read More
  16. windows 환경에서 압축파일로 CUBRID 설치시 환경변수 쉽게 설정하기

    Date2015.07.02 Category운영관리 By김승훈 Views6995
    Read More
  17. 디비와 테이블 문자셋이 다른 경우 처리 방법

    Date2015.06.03 Category운영관리 By이용미 Views15802
    Read More
  18. CUBRID HA와 Primary key 제약조건

    Date2015.04.21 Category운영관리 By정만영 Views11347
    Read More
  19. 테이블 사용량 확인방법

    Date2015.02.03 Category운영관리 By정만영 Views11452
    Read More
  20. 9.2 버전에서 복제 재구축(ha_make_slavedb.sh) 스크립트를 사용하려면 수정해야 할 부분

    Date2013.10.24 Category운영관리 Bybrightest Views12231
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4

Contact Cubrid

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