2011-09-29 2 views
3

OCI를 사용하여 데이터베이스와 통신하는 C 응용 프로그램이 있습니다. 인스턴트 클라이언트 방법을 사용하여 서버에 독립 실행 형 Oracle 설치가 없습니다. 응용 프로그램이 링크 된 몇 개의 라이브러리 만 있습니다.Oracle OCI - 다른 사용자로 실행 중일 때 ORA-12705로 실패 함

일반적으로 응용 프로그램은 사용자 dai로 실행되며 모든 것이 잘 작동합니다. 응용 프로그램 (그룹 다이에) 다른 사용자로 실행되는 경우, 그것은보고, 실행되지 : 그래서

Error while trying to retrieve text for error ORA-12705 

나는 이것이 권한 오류가 있음을 상상할 수있는,하지만 난 그게 뭔지 파일 확실하지 않다 액세스하려고합니다. 오라클 라이브러리의 권한은

dai:/dai/oracle/lib> ls -l 
total 201872 
-rwxrwxrwx 1 dai  dai  24719097 16 Feb 2009 libclntsh.a 
-rwxrwxrwx 1 dai  dai   5972457 16 Feb 2009 libocci.a 
-rwxrwxrwx 1 dai  dai  72651344 04 Jun 2010 libociei.so 

메인 OCI 라이브러리가 정적으로 연결되어 추측 수 있듯이

을하지만, 거기에 하나의 동적 링크 라이브러리는 왜 확실하지 않은 (하지만 AIX의 instantclient 패키지는 이러한 파일과 함께 ...). 내 LIBPATH는 두 사용자가 모두 괜찮은 것으로 보입니다.

LIBPATH=/dai/oracle/lib 

어떤 다른 사용 권한을 확인해야합니까?

편집 : 방금 무슨 일이 일어나고 있는지 보려면 truss (AIX와 동일한 Linux strace)을 실행 해 보았습니다. dai 사용자로 실행할 때 예기치 않은 파일을 읽지 못했습니다. 트러스 문제 세트-UID 프로그램을 추적하는 것 같았다 -는 C 응용 프로그램에 대한 사용 권한은 다음과 같이 설정했다 :

dai:/dai/bin> ls -l stats_backup 
-rwsrwsr-x 1 dai  dai   6173358 Aug 12 10:08 stats_backup 

그래서 내가 chmod a-s를하고 다시 시도를하고, 지금 작동한다!

그래서 프로그램은 s 비트없이 OK로 실행되지만 다시 넣으면 바로 중단됩니다. S 비트 세트로 트러스를 실행할 수 없기 때문에 이것이 왜 필요한지 알아내는 것은 어렵습니다. 이 프로그램은 s 비트 세트가없는 다른 환경에서는 작동하지 않으므로 실행 가능한 해결책은 아니지만 문제가 발생한 위치를 가리키는 포인터가됩니다.

+0

많은 베테랑 사용자가 S.O. 자신의 관심사/전문 분야 태그가 붙은 메시지 만보기 만하면 aix 태그를 유닉스로 변경하면 문제를 더 잘 볼 수 있습니다. 행운을 빕니다. – shellter

+0

조언 주셔서 감사합니다, 나는 그것을 줄거야! 실제로 직장에서 일하는 사람들에게 묻는 동안 솔라리스에서도 비슷한 결과가 나왔다. 문제가 무엇이든 관계없이 AIX에만 해당되는 것은 아니다. – asc99c

+0

ora 클라이언트가 생성 한 oradiag 디렉토리와 관련이있을 수 있습니다. 이름은'/ home/yourname/oradiag_yourname'입니다. –

답변

0

다른 사용자가 액세스 할 수없는 어딘가에 아마도 오라클 데이터 파일이있을 수 있습니다. According to Google, ORA-12705은 NLS 데이터 파일 (어디에 있던지)에 액세스 할 수 없거나 일부 환경 변수 문제가있을 수 있기 때문에 발생합니다.

+0

관련 파일은 libociei.so입니다. OCI는 NLS_LANG을 설정하지 않고 (ASCII 문자 만 사용하는 경우)이 작업 없이도 모두 작동합니다. 그러나 소프트웨어는 스페인에서 실행되므로 ASCII는 실행 가능한 옵션이 아닙니다. – asc99c

+0

문제점 설명에이 정보를 포함시켜야합니다. 그것은 당신의 문제에 매우 germaine 보인다. NLS_LANG가 문제로 확인 되었다면 작업 중에 스패너를 던질 수있는 다른 변수에 대해 2 사용자 환경을 비교 했습니까? 행운을 빕니다! – shellter

관련 문제