개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.25 13:51

OCI TAF 콜백 함수 등록 오류 해결 요청

목록
  • 도커마법사 1일 전 2025.03.25 13:51
  • 4
    1
제가 OCI를 사용하여 TAF 콜백 함수를 등록하려고 하는데, oci_register_taf_callback 함수를 호출할 때 오류가 발생합니다.

오류 메시지는 다음과 같습니다:


OCI-17104: 오류를 처리할 콜백 함수가 지정되지 않았습니다.


제가 등록할 콜백 함수는 다음과 같습니다:
c

void my_taf_callback(void *ctx, OCIError *errhp, ub4 status, void *data)

{

    // 콜백 함수의 로직

}


제가 사용하는 OCI 버전은 Oracle Database 21c입니다.

다음과 같은 코드를 사용하여 콜백 함수를 등록하려고 합니다:
c

oci_env *envhp;

oci_error *errhp;

...

oci_register_taf_callback(envhp, errhp, my_taf_callback, NULL);


오류가 발생하는 이유는 무엇이며, 어떻게 해결할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    OCI TAF 콜백 함수 등록 오류는 일반적으로 콜백 함수가 올바르게 등록되지 않았거나, 콜백 함수가 NULL 인 경우에 발생합니다.

    오류 메시지에서 "오류를 처리할 콜백 함수가 지정되지 않았습니다." 라고 나와 있습니다. 이는 콜백 함수가 NULL 인 경우에 발생하는 오류입니다.

    my_taf_callback 함수가 올바르게 등록되지 않은 경우, 오류 메시지가 다를 수 있습니다.

    오류를 해결하기 위해서는 다음을 확인하세요:

    1. 콜백 함수가 올바르게 선언되어 있는지 확인하세요.
    2. 콜백 함수가 NULL 인지 확인하세요.
    3. 콜백 함수가 올바르게 등록되어 있는지 확인하세요.

    다음은 예제 코드입니다:

    #hostingforum.kr
    c
    
    void my_taf_callback(void *ctx, OCIError *errhp, ub4 status, void *data)
    
    {
    
        // 콜백 함수의 로직
    
    }
    
    
    
    int main()
    
    {
    
        oci_env *envhp;
    
        oci_error *errhp;
    
    
    
        // OCI 환경 변수 설정
    
        OCIEnvCreate(&envhp, OCI_DEFAULT, NULL, NULL, NULL, NULL, NULL, NULL);
    
        OCIHandleAlloc(envhp, (dvoid **) &errhp, OCI_HTYPE_ERROR, 0, NULL);
    
    
    
        // 콜백 함수 등록
    
        oci_register_taf_callback(envhp, errhp, my_taf_callback, NULL);
    
    
    
        // 오류 처리
    
        if (errhp->code != 0)
    
        {
    
            printf("오류 발생: %sn", errhp->text);
    
        }
    
    
    
        // OCI 환경 변수 해제
    
        OCIHandleFree(errhp, OCI_HTYPE_ERROR);
    
        OCIHandleFree(envhp, OCI_HTYPE_ENV);
    
    
    
        return 0;
    
    }
    
    


    위 코드에서 콜백 함수가 올바르게 등록되어 있는지 확인하세요. 오류 메시지에서 "오류를 처리할 콜백 함수가 지정되지 않았습니다." 라는 메시지가 나타나면, 콜백 함수가 NULL 인 경우에 발생하는 오류입니다.

    오류를 해결하기 위해서는 콜백 함수에 NULL 대신에 올바른 콜백 함수를 등록하세요.

    #hostingforum.kr
    c
    
    oci_register_taf_callback(envhp, errhp, my_taf_callback, NULL);
    
    


    위 코드에서 NULL 대신에 올바른 콜백 함수를 등록하세요.

    #hostingforum.kr
    c
    
    oci_register_taf_callback(envhp, errhp, my_taf_callback, (void *)my_taf_callback);
    
    


    위 코드에서 (void *)my_taf_callback을 NULL 대신에 등록하세요.

    이러한 방법으로 오류를 해결할 수 있습니다.

    2025-03-25 13:52

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,545건 / 11 페이지

검색

게시물 검색