Skip to end of metadata
Go to start of metadata

 


실제 ALTIBASE의 unix ODBC Driver와 연동하기 위한 방법을 설명한다.

 

ODBC.INI 설정

사용자계정의 환경변수에 다음을 설정한다.

해당 설정은  odbc driver의 접속정보를 기록하는 설정파일을 지정한 파일로 사용하겠다는 의미이다.

/home/unixODBC/etc/odbc.ini에는 다음과 같이 기록한 후 저장한다

  • odbc.ini 예제

  • 주요 설정값
설정항목설정값설명

Driver

libaltibase_odbc-64bit-ul64.so

Bit에 따라 제공되며 중요한 것은 ul64/32의 확인이다. 일부 ODBC Manager의 컴파일단계에서 SQLLEN에 대한 정의를 4byte/8byte로 달리하여 접속단계부터 오류가 날 수

있음으로 해당 ODBC Manager를 컴파일 할 때 SQLLEN을 어떻게 정의했는지를 확인해야 한다. (32/64bit의 구분이 아님)

libaltibase_odbc-64bit-ul32.so
libaltibase_odbc.so

libaltibase_odbc.so는 32bit용 unixodbc driver와 사용되는 odbc driver이다. altibase 32bit client package 에 포함되어 있는 파일이다.

정확하게는 파일의 비트를 사용자가 확인해서 써야 한다. (file <FileName>으로 확인)

unixodbc 를 32bit 로 컴파일해서 사용하는 경우 이 Driver를 지정해서 사용해야 한다.

LongDataCompatONlob 데이타를 사용할 경우 ON 설정을 한다.

 

 

위의 SQLLEN의 길이정보는 다음과 같이 확인한다.

shell> /home/unixODBC/bin] ./odbcinst -j

unixODBC 2.3.2
DRIVERS............: /home/unixODBC/etc/odbcinst.ini

....................

SQLULEN Size.......: 4 ( 64bit인 경우 8 )
SQLLEN Size........: 4 ( 64bit인 경우 8 )

SQLSETPOSIROW Size.: 2

Icon

unixODBC에서 정의된 SQLLEN 사이즈에 따라서 사용해야 하는 odbc driver가 달라져야 한다. SQLLEN = (4byte/32bit) 인 경우는 odbc driver를 libaltibase_odbc-64bit-ul32.so 를 사용해야 한다. SQLLEN = ( 8byte/64bit) 인 경우는 libaltibase_odbc-64bit-ul64.so 를 사용한다.

 

ODBC연결테스트

위과 같이 설정이 완료되면 unixODBC Manager가 설치된 디렉토리에서 다음과 같은 수행을 한다.

위와 같이 정상적인 접속 프롬프트가 보여지면 정상적으로 DB에 연결될 상태라고 볼 수 있다.   AIX의 경우는 간혹 libodbcinst.so 의 파일이 LIBRARY_PATH에 잡히지 않거나 특이한 이유로 정상적으로 설치했음에도 불구하고 접속이 안 되는 경우가 있다.

libodbcinst.so.1 파일이 컴파일 한 소스디렉토리에 존재하는지 확인하고 이것에 대한 libodbcinst.so 가 존재하지 않을 경우 libodbcinst.so.1에 대한 심볼릭 링크를 걸어 LD_LIBRARY_PATH내에 위치시킬 경우 해결이 가능하다.

SUN의 경우는 LD_LIBRARY_PATH_64 에 unixODBC Manager의 lib경로를 설정해야 접속이 가능하다

 

ODBC trace log 설정

unixODBC 에서 호출하는 ODBC 함수를 파일로 로깅하여 문제 원인분석시 유용하게 활용할 수 있다.   unixODBC가  trace log 를 남기도록 설정하는 방법은 아래와 같다.

  1. ODBCINST.INI 파일 설정

    odbc.ini 파일이 위치한 경로와 동일 디렉토리 경로에  odbcinst.ini 에  위와 같이 설정한다.   DSN 명은 반드시  [ODBC] 를 사용하여야 한다.   TraceFIle 설정값은 로깅할 내용이 기록될  파일의 위치와 파일명이다.  Trace = Yes/No 로깅 여부를 선택할 수 있다.


  2. unixODBC Trace 출력예

    trace.log  열어 보면 위와 같은 파일 내용을 확인할 수 있다. 

 

  • No labels