* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 32bit, Linux 64bit 등 | |
9.3.6.0002 | |
Manager : 9.3.1.703 / ODBC Unicode : 10.0.0.1 |
|
ODBC 사용 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
저희 프로그램 사용중 Cubrid ODBC Unicode (10.0.0.1) 을 통한 Connection Test 도중,
단지 Connection String 생성하여 Connect 후 바로 Disconnect 실행시,
수초 내지 1분 이내에, 해당 프로그램이 종료되는 현상이 발생하였습니다.
Connect / Disconnect 기능만 있는 ODBC Test용 프로그램을 생성하여
테스트 한 결과, 동일한 오류가 발생하여, 해당 ODBC 에 대한 버그가 아닌지 의심이 되어 이렇게 문의 드립니다.
Connect 시 소스코드
// initEnv
rc = SQL_SUCCESS;
rc = SQLAllocEnv(&EnvHandle);
// InitDBHandle
if(rc == SQL_SUCCESS)
rc = SQLAllocConnect(EnvHandle, &ConHandle);
// Connect DB
if(rc == SQL_SUCCESS)
{
TCHAR szInfo[1024];
_tcscpy((TCHAR*)szInfo, (TCHAR*)(LPCTSTR)m_strCon);
rc = SQLDriverConnect(ConHandle, NULL, (SQLTCHAR*)szInfo, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
if(rc != SQL_SUCCESS)
{
CString sError = _T("Connection failed!");
AfxMessageBox(sError);
}
Disconnect 시 소스코드
rc = SQLDisconnect(ConHandle);
if(rc != SQL_SUCCESS)
{
CString sError = _T("Disonnection failed!");
AfxMessageBox(sError);
}
if(ConHandle != NULL)
SQLFreeHandle(SQL_HANDLE_DBC,ConHandle);
if(EnvHandle != NULL)
SQLFreeHandle(SQL_HANDLE_ENV,EnvHandle);
Connect 후, Disconnect 작업 완료후,
에러메시지는 다음과 같습니다.
CUBTESTER.exe의 0x77b7160e에 처리되지 않은 예외가 있습니다. 0xC0000005: Access violation
Disconnect 실행후 Output 내용은 다음과 같습니다.
SQLGetDiagRec called
SQLGetFunctions called
SQLGetInfo called
SQLGetInfo called
SQLGetInfo called
SQLDisconnect called
SQLFreeHandle called
SQLFreeHandle called
'CUBTESTER.exe': 'C:Program Files (x86)cubrid-odbc-unicodecubrid_odbc32.dll' 언로드
'CUBTESTER.exe': 'C:WindowsSysWOW64wsock32.dll' 언로드
CUBTESTER.exe의 0x0ffcbfd4에 첫째 예외가 있습니다. 0xC0000005: Access violation
CUBTESTER.exe의 0x77b7160e에 처리되지 않은 예외가 있습니다. 0xC0000005: Access violation
'[12072] CUBTESTER.exe: 네이티브' 프로그램이 종료되었습니다(코드: 0 (0x0)).
이후 호출 스택 확인결과
> ntdll.dll!77b7160e()
[아래 프레임은 올바르지 않거나 누락되었거나 ntdll.dll에 대해 로드된 기호가 없음]
ntdll.dll!77b7160e()
ntdll.dll!77bf8777()
ntdll.dll!77c175b9()
ntdll.dll!77be0366()
ntdll.dll!77b60143()
KernelBase.dll!75d33d68()
ntdll.dll!77b6fda1()
KernelBase.dll!75d33d3c()
KernelBase.dll!75d3460c()
kernel32.dll!75a3336a()
ntdll.dll!77b89902()
ntdll.dll!77b898d5()
위와 같이 나타나고 있었으며,
이 현상은 반드시 나타나고 있었습니다.
꼭 Connect 후 Disconnect 작업 후 수분내에 발생하고 있습니다.
해당하는 테스트 프로그램은 첨부하도록 하겠습니다.