• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 5157
2012.05.11 (17:23:18)
기존에 작성된 내용입니다.

이러한 현상은 대부분 사용자 서비스 작성시에 메모리 관련 핸들링을 잘못 하게 되면 발생됩니다.

-  Memory Error 대처 요령
(1)  사용자가 작성한 이벤트 스크립트상의 메모리 핸들링 오류
가.  strcpy, strncpy, memcpy, sprintf, strcat 함수 사용시
버퍼의 크기는 적절하게 잡혔는가? 특히 static변수 size는 항상 NULL값의
사이즈를 더하여 잡아야 한다.
포인터 변수 사용 시 초기화는 이루어 졌는가?
나.  select_sql, insert_sql, update_sql, delete_sql등의 SQL변수의 사이즈를
초과하는 SQL문이 작성되었는가? 그렇다면 SOB에서 해당 SQL변수의 사이즈
를 늘려준 다음 서비스를 재컴파일 시킨다.

>게시판을 이용해 주셔서 감사합니다.
>다음양식에 맞게 입력해주세요.
>
>* 고객시스템명 : 에듀텍
>* TOInB 버전 : 5.0
>* 서버 Platform : 윈도우
>* 문의 유형(질문/요청/참조) :
>* 내용 :
>토인비에서 event 작성시에 문제가 있어 문의 드립니다.
>
>다이나믹 조회를 위해 처리 한 부분 입니다.
>
>이벤트 작성을 아래처럼 세가지 를 다 해보았는데 토인비 로그에서
>The thread attempted to read from or write to a virtual address for which it does not have the appropriate access.
>만 나옵니다.
>이벤트 제거를 하면 data 이상없이 출력 됩니다.
>
>이벤트에서 로그만 출력 했을 경우는 제데로 출력 됩니다.
>그러나 1 번 스크립트를 추가 하면 문제가 생깁니다.
>아래 처럼 사용 하면 안되는건가요??
>
>1번==========================================>
>        if (strcmp ( AS_SESNCD, "" ) != 0){
>                sprintf(Tmp_sql01," AND SGS.SESNCD = '%s'\n", AS_SESNCD);
>                 strcat(select_sql,Tmp_sql01);
>        }
>        
>        if (strlen(AS_COURSE)  > 0){
>                sprintf(Tmp_sql01," AND COURSE.COURSE = '%s'\n", AS_COURSE);
>                 strcat(select_sql,Tmp_sql01);
>        }
>1==========================================>
>
>로그=======================================>
>TB_BOOL SK04021_s01_TB_prepare_work ( TB_SESSION_PGV *spgv )
>{
>/* To Do, Add your script here */
>        
>
>TBL_Prn (tb_stderr, "111AS_SESNCD. msg[%s]",AS_SESNCD);
>TBL_Prn (tb_stderr, "111AS_COURSE. msg[%s]",AS_COURSE);
>TBL_Prn (tb_stderr, "111AS_CLSCD. msg[%s]",AS_CLSCD);
>        return (TB_SUCC);
>}
>
>TB_BOOL SK04021_s01_TB_begin_work ( TB_SESSION_PGV *spgv )
>{
>/* To Do, Add your script here */
>
>        
>TBL_Prn (tb_stderr, "222AS_SESNCD. msg[%s]",AS_SESNCD);
>TBL_Prn (tb_stderr, "222AS_COURSE. msg[%s]",AS_COURSE);
>TBL_Prn (tb_stderr, "222AS_CLSCD. msg[%s]",AS_CLSCD);
>        return (TB_SUCC);
>}
>
>TB_BOOL SK04021_s01_TB_initialize_variable ( TB_SESSION_PGV *spgv )
>{
>
>        
>/* To Do, Add your script here */
>TBL_Prn (tb_stderr, "333AS_SESNCD. msg[%s]",AS_SESNCD);
>TBL_Prn (tb_stderr, "333AS_COURSE. msg[%s]",AS_COURSE);
>TBL_Prn (tb_stderr, "333AS_CLSCD. msg[%s]",AS_CLSCD);
>        return (TB_SUCC);
>}
>=====================================================================>
>
 
Tag List
XE Login