안녕하세요. 구루비 고수님들 질문이 있어 글 올립니다.
현재 ODBC를 통해 오라클에 접속해서 간단한 쿼리를 날려보는 샘플 코드를 작성했습니다.
(샘플 코드는 인터넷에 있는거 그대로 썼습니다.)
일반 서버에서는 정상적으로 접속을 해서 쿼리를 날립니다.
문제는 RAC환경인데...
RAC환경에 속한 녀석들한테는 정상적으로 접속을 못하더군요.
프로그램을 실행했을 때 항상 ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 에러를 냅니다.
물론 리스너 설정 정상적입니다.
외부에서 sqlplus scott/tiger@SID 하면 정상 접속 됩니다.
유독 프로그램에서 ODBC를 통해 접속 할려고 하면 에러를 발생 시키네요.
현재 커넥트 스트링으로 쓰는 녀석은 아래와 같습니다.
char *connect_string = "Driver={/lib/libsqora.so};dbq=오라클 서버IP:1521/SID;Uid=scott;Pwd=tiger;";
근데 웃긴건 SID 자리에 서비스명을 넣으면 또 접속이 됩니다.... 휴우.. 어렵네요..
참고로 RAC 서버에 붙어 SELECT instance FROM v$thread; 쿼리를 날려 SID를 확인해서 나오는 녀석을 위 커넥트 스트링에 넣어주면 에러가 납니다...
그리고 SELECT name from v$database; 쿼리를 통해 나오는 DB명을 SID에 넣으면 접속이 되구요...
이거 SID명을 넣어서 정상 작동 시키고 싶은데 방법이 없을까요??
참고로 환경은 윈도우, 리눅스, 유닉스 전 환경에서 실행 시킬 수 있는 환경으로 만들 생각입니다.
그럼 고수님들의 답변 부탁 드리겠습니다.