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. Windows에서 32bit 버전의 PHP 설치 후 CUBRID와 연동 실패 시 해결 방법

    Date2016.03.28 Category응용개발 By진우진 Views4523
    Read More
  2. Invalid XASL tree node content 에러

    Date2016.04.26 Category운영관리 By손승일 Views4477
    Read More
  3. cubrid plandump ( plan cache정보확인)

    Date2015.12.29 Category운영관리 By주현 Views4300
    Read More
  4. 큐브리드 마스터 소켓 디렉토리 변경방법

    Date2016.07.05 Category운영관리 By정만영 Views4218
    Read More
  5. 스키마 및 인덱스 선언에 따른 최대 용량 산정을 위한 ROW SIZE 확인

    Date2016.03.21 Category질의작성 By성진 Views4178
    Read More
  6. Cubrid는 어떤 쿼리를 동일한 쿼리로 판단할까?

    Date2015.12.30 Category질의작성 By이상신 Views4010
    Read More
  7. CUBRID PHP 드라이버 빌드와 연동방법

    Date2018.03.07 Category응용개발 By정만영 Views3763
    Read More
  8. subquery를 이용한 튜닝예제

    Date2016.12.27 Category질의작성 By김창휘 Views3322
    Read More
  9. 테이블 명세서 쿼리

    Date2017.08.04 Category질의작성 By성진 Views3165
    Read More
  10. JBoss 사용 시 statement pooling 설정

    Date2016.12.16 Category기타 By손승일 Views2924
    Read More
  11. CUBRID 와 DBCP의 관계

    Date2016.12.14 Category응용개발 By엄기호 Views2793
    Read More
  12. loose index scan을 활용한 효과적인 쿼리 튜닝 방안

    Date2017.06.01 Category질의작성 By박세훈 Views2409
    Read More
  13. CUBRID 브로커와 시스템 메모리

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

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

    Date2017.03.08 Category운영관리 By주영진 Views2161
    Read More
  16. JAVA_SP를 이용해서 정규표현식을 이용해서 치환을 하자.

    Date2017.10.10 Category질의작성 By성진 Views1325
    Read More
  17. 입력된 날자를 이용하여 해당 주차의 모든 날자 구하기

    Date2018.04.10 Category질의작성 By성진 Views1108
    Read More
  18. VALUES 절 활용하기

    Date2020.05.13 Category질의작성 By황영진 Views814
    Read More
  19. synonym에 대하여

    Date2023.09.07 Category질의작성 By김민종 Views257
    Read More
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