2010-03-11 2 views
1

모노는 정말 굉장합니다. 일부 응용 프로그램은 바이너리를 다시 컴파일하지 않고도 즉시 Linux에서 작업했습니다. 그러나 모노로 사용하려면 oracle instantclient를 구성하는 데 어려움을 겪고 있습니다.mono에 대해 oracle instantclient를 구성하는 방법은 무엇입니까?

(instantclient rpm을 설치하여) CentOS VM에 instantclient를 설치했는데 어디서나 TNSNAMES.ORA를 찾지 못했습니다.

나는 오라클을 찾고 나는 다음 경로에 오라클 라이브러리가 있다는 것을 발견했다.

[[email protected] rupert]# ll /usr/lib/oracle/11.2/client/lib/ 
total 143280 
-rw-r--r-- 1 root root  7456 Aug 14 2009 cobsqlintf.o 
-rw-r--r-- 1 root root  342 Aug 14 2009 glogin.sql 
lrwxrwxrwx 1 root root  17 Mar 9 06:52 libclntsh.so -> libclntsh.so.11.1 
-rw-r--r-- 1 root root 40088477 Aug 14 2009 libclntsh.so.11.1 
-rw-r--r-- 1 root root 6986848 Aug 14 2009 libnnz11.so 
lrwxrwxrwx 1 root root  15 Mar 9 06:52 libocci.so -> libocci.so.11.1 
-rw-r--r-- 1 root root 1879549 Aug 14 2009 libocci.so.11.1 
-rw-r--r-- 1 root root 89377610 Aug 14 2009 libociei.so 
-rw-r--r-- 1 root root 152304 Aug 14 2009 libocijdbc11.so 
-rw-r--r-- 1 root root 1501651 Aug 14 2009 libsqlplusic.so 
-rw-r--r-- 1 root root 1218075 Aug 14 2009 libsqlplus.so 
-rw-r--r-- 1 root root 777979 Aug 14 2009 libsqora.so.11.1 
-rw-r--r-- 1 root root 1996228 Aug 14 2009 ojdbc5.jar 
-rw-r--r-- 1 root root 2111220 Aug 14 2009 ojdbc6.jar 
-rw-r--r-- 1 root root 298388 Aug 14 2009 ottclasses.zip 
drwxr-xr-x 3 root root  4096 Mar 9 06:52 precomp 
-rw-r--r-- 1 root root 37807 Aug 14 2009 xstreams.jar 

없는 TNSPING 사용할 수 없음 TNSNAMES.ORA, 이제 어떻게 오라클 클라이언트로 사용하는 모노를 구성? 및 app.config 연결 문자열 섹션에서 오라클 데이터베이스를 지정하는 방법?

비록 모노, 강력한 프레임 워크는 리눅스와 같은 문제가있는 것처럼, 모든 문서가 메일 링리스트에 대해서만 사용할 수 있으며 어떤 공식 사이트에서 사용할 것은 오래되거나 일반 사용자에 대한 명확하지 중 하나입니다 않는 것 같다.

희망 사항은 곧 변경 될 예정이며 Mono는 Linux 용 프로그래밍 프레임 워크입니다.

+2

마지막 문장에 대해서는 http://www.fsf.org/news/dont-depend-on-mono를 참조하십시오. – Blair

답변

3

oracle 쉬운 연결 이름 지정 방법을 사용하거나 올바른 위치에서 직접 tnsnames.ora를 만드십시오 (위치의 검색 순서는 인스턴트 클라이언트 문서를 확인하십시오). tnsping은 인스턴트 클라이언트 (또는 패키지에 추가)의 일부가 아닙니다.

인스턴트 클라이언트에서 faq "tnsnames.ora"파일이 Instant Client에서 사용되고 있는지 어떻게 확인합니까? 항상 TNS_ADMIN 환경 변수 또는 레지스트리 설정을 tnsnames.ora 파일의 전체 경로로 설정하십시오. 이 방법을 사용하면 Instant Client를 실행할 때 응용 프로그램에 적절한 tnsnames.ora를 사용하고 있는지 확인할 수 있습니다.

인스턴트 클라이언트 모드에서 연결 문자열을 어떻게 지정합니까? ORACLE_HOME 또는 TNS_ADMIN (tnsnames.ora 또는 sqlnet.ora와 같은 구성 파일을 찾기 위해)을 사용할 필요가없는 모든 Oracle Net 이름 지정 메소드는 Instant Client 모드에서 작동합니다. 특히, 연결 문자열은 다음 형식으로 지정할 수 있습니다

형태의

는 SQL 연결 URL 문자열 :

// 호스트 : [포트] [/ 서비스 이름]

과 같은 :

// 디베이스 서버-5 : 4321/ORDERS 오라클 인터넷 키워드 - 값 쌍으로

. 예를 들어

"(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = dlsun242) (PORT = 5521)) (CONNECT_DATA = (SERVICE_NAME = bjava21)))"

명명 방법이 TNS_ADMIN 환경 변수가 설정된 경우 구성 파일을 찾기 위해 TNS_ADMIN을 계속 실행해야합니다.

TNS_ADMIN 환경 변수가 설정되지 않은 경우

, 및 INST1 같은 TNSNAMES 항목 등, 사용 후 ORACLE_HOME 변수를 설정해야하고, 구성 파일에있을 것으로 예상되는 $ ORACLE_HOME/네트워크/admin 디렉토리.

이 경우 ORACLE_HOME 변수는 Oracle Net 구성 파일을 찾는 데에만 사용되며 클라이언트 코드 라이브러리 (OCI, NLS 등)의 다른 구성 요소는 ORACLE_HOME의 값을 사용하지 않습니다.

벡 케스 어댑터 또는 빈 연결 문자열은 지원되지 않습니다. 그러나 빈 연결 문자열을 사용하는 다른 방법은 UNIX의 TWO_TASK 환경 변수 또는 Windows의 LOCAL 변수를 tnsnames.ora 항목 또는 Oracle Net 키워드 - 값 쌍 중 하나로 설정하는 것입니다. TWO_TASK 또는 LOCAL이 tnsnames.ora 항목으로 설정된 경우, tnsnames.ora 파일은 TNS_ADMIN 또는 ORACLE_HOME 설정으로로드 할 수 있어야합니다.

+0

@ 로버트 아주 도움이되었습니다. – funwithcoding

2

모노는 "libclntsh.so"를 검색 할 위치를 모른다. 내 시스템에서 "libclntsh.so"는 @ /usr/lib/oracle/11.2/client/lib/에서 사용할 수 있습니다. 다음 명령을 실행하여 문제가 해결되었습니다.

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib/ 
+0

+1에 대한 후속 조치 –

관련 문제