서버 환경 : os- AIX 4.3 기종- IBM RS 6000 DB - sybase 12.5
문제점 :
DB_CONNECT 후 thread 생성시켜 처리하는 부분이 있는데 thread 부분에서 ESQL 을 호출 하는 부분에서 실행시 ERROR 메세지가
아래와 같습니다. 참고로 이 프로그램은 compaq true64 환경에서 잘 동작되고 있습니다.
===============thread 부분의 소스=================
EXEC SQL SET CHAINED OFF; EXEC SQL ALLOCATE DESCRIPTOR sample_desc WITH max 256; EXEC SQL PREPARE sel_stmt FROM :query; EXEC SQL DECLARE user_cursor CURSOR FOR sel_stmt; EXEC SQL OPEN user_cursor; EXEC SQL FETCH user_cursor INTO SQL DESCRIPTOR sample_desc; EXEC SQL GET DESCRIPTOR sample_desc :descnt=count;
=======================================================
================Error Message=======================
SQLCODE=(-33620275) SQL Server Error cs_objects: cslib user api layer: external error: ZZZZZ cs_objects: error performing requested operation.
==========================================================
여러가지로 고민하던중 Thread 를 생성 못하는 것이 아닌가 하여 테스트 해 보았습니다.
make file 에서 sybopts.sh 로 옵셥등을 설정하여 compile 하는데,
sybopts.sh 파일내에
==========================sybopts.sh============================
verify_threaded -- Returns non-zero if SYBPLATFORM indicates a version of Client-Library without multi-threaded support.
if [ $1 = verify_threaded ] then case $SYBPLATFORM in nthread_*) exit 0;; *) echo " $THREAD_SUPPORT_MSG"; exit 1 ;; esac exit 0 fi
==================================================================
thread 지원 여부 판단해주는 부분이 있던데..
compaq 시스템에서는
[/sybase11/OCS-12_5/sample/ctlibrary] sh sybopts.sh verify_threaded This target requires multi-threaded support.
AIX 시스템에서는 리턴값이 없습니다.
$SYBPLATFORM 이 환경변수값이 echo $SYBPLATFORM nthread_rs600064 이여서 안되는것 같은데
제가 테스트 한 방법이 맞는지? 맞다면 thread 를 지원 하게 하는 방법이 없는지?
$SYBPLATFORM 변수는 sybase 설치시 설정해 주는 값인지요?
궁금하여 문의 드립니다.
이상입니다. |