Как настроить Oracle InstantClient для моно? - PullRequest
1 голос
/ 11 марта 2010

Mono действительно потрясающий. Некоторые из наших приложений работали в Linux из коробки, даже без перекомпиляции двоичного файла. Тем не менее, у меня непростое время, чтобы настроить Oracle InstantClient для использования его с моно.

Я установил InstantClient на CentOS VM (установив InstantClient RPM), но, тем не менее, нигде не нашел TNSNAMES.ORA.

Я искал oracle и обнаружил, что следующий путь содержит библиотеки oracle.

[root@bagvapp 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, теперь, как настроить моно для использования в качестве клиента оракула? и как указать базу данных oracle в разделе строки подключения app.config?

Несмотря на то, что mono является мощным фреймворком, похоже, что у него возникают проблемы, как в Linux, вся документация доступна только в списках рассылки, а все, что доступно на официальном сайте, устарело или неясно для обычного пользователя.

Надеюсь, что все скоро изменится, и Mono станет основой программирования для Linux.

Ответы [ 2 ]

3 голосов
/ 11 марта 2010

Используйте oracle easy connect naming method или создайте tnsnames.ora самостоятельно в нужном месте (проверьте мгновенные документы клиента для поиска порядка местоположений). tnsping не является частью мгновенного клиента (или какого-либо дополнительного пакета).

С мгновенного клиента faq Как мне убедиться, что мой файл "tnsnames.ora" используется в Instant Client? Всегда устанавливайте для переменной среды TNS_ADMIN или параметра реестра полный путь к файлу tnsnames.ora. Эта практика гарантирует, что вы используете соответствующий tnsnames.ora для своего приложения при работе с Instant Client.

Как указать строки подключения в режиме мгновенного клиента? Все методы сетевого именования Oracle, которые не требуют использования ORACLE_HOME или TNS_ADMIN (для поиска файлов конфигурации, таких как tnsnames.ora или sqlnet.ora), работают в режиме мгновенного клиента. В частности, строка подключения может быть указана в следующих форматах:

Строка URL-адреса SQL Connect в форме:

// хост: [порт] [/ имя службы]

например:

// dbase-server-5: 4321 / ORDERS

В качестве пары ключевое слово-значение Oracle Net. Например:

"(ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = tcp) (HOST = dlsun242) (PORT = 5521)) (CONNECT_DATA = (SERVICE_NAME = bjava21))) "

Методы именования, для которых TNS_ADMIN требуется найти файлы конфигурации, продолжают работать, если установлена ​​переменная среды TNS_ADMIN.

Если переменная среды TNS_ADMIN не задана и используются записи TNSNAMES, такие как inst1 и т. Д., То необходимо установить переменную ORACLE_HOME, и файлы конфигурации должны находиться в $ ORACLE_HOME / network / admin каталог.

Обратите внимание, что переменная ORACLE_HOME в этом случае используется только для поиска файлов конфигурации Oracle Net, и никакой другой компонент библиотеки клиентского кода (OCI, NLS и т. Д.) Не использует значение ORACLE_HOME.

Адаптер завещания или пустые строки подключения не поддерживаются. Однако альтернативный способ использовать пустую строку соединения - задать для переменной среды TWO_TASK в UNIX или для переменной LOCAL в Windows либо запись tnsnames.ora, либо пару ключевое слово-значение Oracle Net. Если для TWO_TASK или LOCAL задано значение tnsnames.ora, то файл tnsnames.ora должен загружаться с помощью параметра TNS_ADMIN или ORACLE_HOME.

2 голосов
/ 11 марта 2010

Моно не знает, где искать "libclntsh.so". В моей системе доступен libclntsh.so @ /usr/lib/oracle/11.2/client/lib/ Моя проблема была решена путем выполнения следующей команды

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...