DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Диагностика ошибки TNS-12500 на стороне клиента

Первое, что следует предпринять при возникновении этой ошибки,- проверить, скомпонован ли необходимый адаптер протокола с используемым приложением. В системе UNIX это делается с помощью программы adapters, расположенной в каталоге $ORACLE_HOME/bin. Рассмотрим конкретный пример.
Допустим, вы пытались запустить SQL*Plus и получили рассматриваемое сообщение об ошибке. Перейдите в каталог $ORACLE_HOME/bin и введите следующую команду:
adapters sqlplus
Узнав, где находится разделяемая библиотека, перейдите в этот каталог и повторите команду adapters, указав в качестве параметра имя библиотеки (если указать полное имя файла, то каталог можно не менять).
Если на вашей платформе не используются разделяемые библиотеки, то попробуйте вручную найти ссылки на протокол внутри выполняемого файла. В случае SQL*Plus и TCP/IP соответствующая команда будет выглядеть так:
nm sqlplus | grep nttini
nttini — это обозначение адаптера TCP/IP в версии 2 и Net8.
Каждый адаптер протокола имеет свое собственное обозначение. Некоторые из этих обозначений приведены в таблице 14.4.

Таблица 14.4.
Обозначения адаптеров протоколов

Адаптер
Обозначение
TCP/IP
nttini
DECNET
ntdini
Ш6.2
ntlini
SPX
ntsini
IPC
ntusini
BEQ
ntpini

Если это не дало результата, перекомпонуйте выполняемый файл
вручную. Легко сказать, но как это сделать? Начнем с того, что перед перекомпоновкой любого выполняемого файла всегда следует делать его резервную копию, чтобы при необходимости можно было вернуться назад. Кроме того, перед любой перекомпоновкой, особенно если речь
идет об одном из выполняемых файлов Oracle, не забудьте остановить базу данных. Теперь приступим непосредственно к перекомпоновке, взяв в качестве примера SQJL*Plus.
Если у вас есть достаточные привилегии для выполнения этих действий, то перейдите в каталог $ORACLE_HOME/sqlplus/lib и введите следующие команды:
make -f ins.sqlplus.mk install
После этого ваш выполняемый файл должен быть скомпонован с адаптером протокола, и возможно, соединение заработает.
Если ошибка        не исчезла, то следующее, что можно проверить,— это определения переменных ORACLE_HOME и ORACLE_SID, а также LD_LIBRARY_PATH. Проблемы часто возникают из-за отсутствия или неправильной установки этих переменных. Кроме того, можно попробовать изменить значение параметра AUTOMATIC_IPC в файле sqlnet.ora на OFF (или добавить этот параметр, если он отсутствует).
 









jAntivirus