2012-04-30 2 views
2

Я пытаюсь установить драйверы ODBC, и я бегу в кирпичные стены.ODBC lib Указанный драйвер не может быть загружен

[[email protected] pkg]# isql -v 
[IM002][DataDirect][ODBC lib] Data source name not found and no default driver specified 
[ISQL]ERROR: Could not SQLConnect 
[[email protected] pkg]# isql -3 SUBS2A 
[IM003][DataDirect][ODBC lib] Specified driver could not be loaded 
[ISQL]ERROR: Could not SQLConnect 

Мои файлы INI следующие:

odbcinst.ini

[ProgressOpenEdge] 
Description = ODBC for Progress OpenEdge 
Driver = /usr/dlc/odbc/lib/pgoe1023.so 
;Setup = /usr/dlc/odbc/lib/pgoe1023.so 
FileUsage = 1 

odbc.ini

[SUBS2A] 
Driver = ProgressOpenEdge 
Description = Fail 
DatabaseName = SUBS 
PortNumber = 4000 
HostName = 192.168.1.2 
LogonID = SYSPROGRESS 
Password = SYSPROGRESS 
APILevel = 1 
ConnectFunctions = YYN 
CPTimeout = 60 
DriverODBCVer = 03.50 
FileUsage = 0 
SQLLevel = 0 
UsageCount = 1 
ArraySize = 50 
DefaultLongDataBuffLen = 2048 
DefaultIsolationLevel = REPEATABLE READ 
StaticCursorLongColBuffLen = 4096 
[ODBC] 
InstallDir = /usr/dlc/odbc 
Trace = 0 
TraceFile = odbctrace.out 
TraceDll = /usr/dlc/odbc/lib/odbctrac.so 
UseCursorLib = 0 

Я уже убедились все зависимости будут загружены правильно через LDD.

ОБНОВЛЕНИЕ

ВЫВОД: Трассирование ISQL -v http://pastebin.com/tXFY4vVt

Выходной сигнал: Трассирование ISQL -3 SUBS2A http://pastebin.com/Yu5e54mR

Выходной сигнал: /tmp/odbctrace.out http://pastebin.com/0kgvNdWv

Thanks

+0

Ничего. Я страдал от судорог мозга. –

+0

Вы протестировали сетевое подключение на конкретном TCP-порту? Например, с помощью nc 192.168.1.2 4000 –

+0

проверьте драйверы на проблемы совместимости с архитектурой вашей системы и с сервером. – pravin

ответ

2

Вы должны проверить, что драйвер ODBC является загружаемым:

ldd /usr/dlc/odbc/lib/pgoe1023.so 

Вероятно, загрузчик не может найти зависимости, как общих объекты (так библиотеки), которые пока не доступны в вашей среде или доступны в различном версия.

Я рекомендую вам добавить /usr/dlc/odbc/lib/ или, может быть, другие пути в соответствии с вашей системы:

  • либо в переменной среды LD_LIBRARY_PATH
  • либо добавить определенный файл Загрузчик Linux, например /etc/ld.so.conf.d/odbc-pgoe.conf с линией /usr/dlc/odbc/lib/ и обновить с помощью ldconfig (лучший вариант)

Сообщите нам о выходе команды ldd, если проблема сохраняется. Возможно, ожидаемые имена файлов библиотек не соответствуют вашему дистрибутиву Linux.

Update: last comment of this post подтверждает, что ld.so.conf файл является решением, чтобы получить работу водителя. Вы должны проверить это.

Этот форум относится к similar situation. Возможно, решение решит вашу проблему.

Если все еще не так, сообщите об ошибке strace isql -3 SUBS2A. Вероятно, вы узнаете, что не так, как неудачная загрузка библиотеки, проблема с доступом к файлу или что-то еще, перед сообщением об ошибке.

+0

Да, это уже сделано, все загружается ... извинения, я отредактирую свой вопрос. – PolishHurricane

+0

Вы использовали метод /etc/ld.so.conf.d/, который я предлагаю, или «перемещение», описанное в предыдущем вопросе? Вы не должны перемещать библиотеки из одного места в другое ... Библиотеки могут загружаться динамически самим C-кодом (без ссылок для загрузчика в ELF). Поэтому я рекомендую протестировать все библиотеки из установки драйвера ODBC (возможно, все в/usr/dlc/odbc/lib) с помощью «ldd». –

+0

strace isql -v: http://pastebin.com/tXFY4vVt Кроме того, в /etc/ld.so.conf.d/ все, что я вижу, это perl.conf, но я не думаю, что это поддерживается система. Я поместил его в файл (ы) среды и также выполнил экспорт. Я проголосовал за ваш ответ как полезный, ценю его, но все же не решение. – PolishHurricane

0

(1) Вы можете проверить правильность драйвера перед его использованием.

$ ivtestlib /usr/dlc/odbc/lib/pgoe1023.so 

(2) Просмотр журнала при загрузке драйверов В консоли

tail -f /path/to/SysLog_OrOtherName.file 

В другой консоли

odbc.sh 
+0

В моей системе нет этой утилиты, и я понятия не имею о том, что syslog вы говорите около. – PolishHurricane