Недавно пришлось настраивать, а точнее восстанавливать, ODBC подключение
к базам Lotus-а.
А началось с
того, что позвонил аналитик и сообщил, что перестала работать загрузка данных из
баз данных Lotus-а.
Выгрузка эта была настроена давно другим пользователем, и он уже как пол года
уволился, а выгрузка перестала работать 3 дня назад. Начал разбираться, т.к это
был первый опыт работы с данным источником, то пришлось разбираться с нуля, и
получилось довольно не просто.
06.11.2013 добавлена информация по настройке драйверов для Windows 2012 Server.
Ниже описаны шаги по настройке
данного источника данных для MS SQL Server.
Итак, порядок установки и настройки таков:
1)Скачиваем и устанавливаем Lotus Notes SQL ODBC драйвера
с сайта IBM. На момент
написания этой статьи была доступна следующая версия драйверов 8.51.2009.1021
от 21.10.2009. На что здесь стоит обратить, то что драйвера только
32-разрядные, а большинство серверов уже
63 разрядные. Соответственно настройка источника необходимо производить как
описано в данной статье.
После того как
скачали, устанавливаем драйвера, желательно в каталог по умолчанию C:\NotesSQL.
2)Устанавливаем
клиент IBM Lotus Notes на сервер. После установки клиента на сервер, его необходимо
настроить под пользователем, через которого будет осуществляться доступ к базам
Lotus-а.
3) Запустить
приложение Nsql_ALM.exe , которое находится в каталоге установки ODBC драйверов
IBM Lotus. В данном приложении
необходимо указать файл lotus.ini и user.id и
сохранить настройки.
Здесь я думал, что все настроено, но при создании
источника данных возникла ошибка:
The setup routines for the Lotus Notes SQL Driver (*.nsf) ODBC driver
could not be loaded due to system error code 126: The specified module could
not be found. (C:\NotesSQL\nsqlc32.dll).
На решение
этой проблемы и потратилось больше всего времени. Она возникает из-за того, что
драйвера были написаны для 32-разрядных старых операционных систем и разницы
путей в реестрах.
Итак,
благодаря интернету, была решена данная проблема, необходимо сделать следующее:
1)Проверить
пути в реестре и в реальность следующего ключа [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Lotus
Notes SQL Driver (*.nsf)] , разница маловероятно, но стоит сначала проверить.
2)И самое
ключевое, прописать путь в системные переменные операционной системы.
Для этого в
свойствах компьютера выбираем вкладку «Дополнительно\Advanced», затем «Переменные среды\ Environment Variables»
Выбираем
переменную «Path»
И добавляем
следующие пути, через символ « ; »:
-
Путь установки клиента IBM Lotus Notes Client-а,
-
Пусть установки ODBC драйверов IBM Lotus SQL, по умолчанию C:\NotesSQL
после этого сохраняем данные и перегружаем сервер.
Теперь можно и
создать источник данных, к примеру так:
Указав в поле «User name» учетную запись Lotus-а.
Далее это
источник можно использовать в SSIS пакетах, либо создавать связанных серверах.Добавлено 06.11.2013:
При установки данных драйверов в ОС Windows 2012 Server данные драйвера не появляются в источника ODBC. Для того, чтобы они появились и необходимо поправить реестр:
Добавить ключ в ветвь:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers]
"Lotus Notes SQL Driver (*.nsf)"="Installed"
и создать ветку Lotus Notes SQL Driver (*.nsf) в каталоге [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\]
параметры следующие (можно скопировать в .reg файл):
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\Lotus Notes SQL Driver (*.nsf)]
"APILevel"="1"
"ConnectFunctions"="YYY"
"CPTimeout"="<not pooled>"
"Driver"="C:\\NotesSQL\\nsql32.dll"
"FileExtns"="*.nsf"
"FileUsage"="2"
"Setup"="C:\\NotesSQL\\nsqlc32.dll"
"SQLLevel"="0"
"UsageCount"=dword:00000002
Помог следующий ресурс:
http://www.sqlservercentral.com/Forums/Topic478479-146-1.aspx
еще нашел :
http://www.databasejournal.com/features/mssql/article.php/3462011/Connect-to-Lotus-Domino-using-SQL-Server-Linked-Server.htm
Удачного подключения!
День добрый! Я сталкивался с той же ошибкой № 126 и могу решить проблему. Можете подсказать, какой софт должен стоять на компе, откуда нужно качать данные? Задачой является экспорт данных из базы Lotus в MSSQL. С Lotus Notes раньше не имел дела и не пользовался. Также перепробывал разные драйвера.
ОтветитьУдалитьОС: Windows 7 64bit.
Пока у меня есть веб подключение к Lotus Notes и нет понятии, что нужно ставить или конфигурировать для успешного подключение через ODBC, и что потребовать от админа. Клиент к Лотусу отсутствует. Скачал и поставил из IBM сайта trial клиент, но он не хочет находить сервер. Реистр перекапал и все пути поставил.
1)На том месте где будет происходить экспорт данных(а это там где стоит MS SQL сервер) из Лотуса должен быть установлен клиент лотуса и настроен под вами или той учетной записью, через которую должен быть импорт. Без этого шага никак . По настройке Лотуса обратитесь к своим лотусистам.Там при настройке нужно указать почтовый сервер, и должен подтянуться user.id.
ОтветитьУдалить2)Пользователь должен иметь права к базе данных из которой будет импорт.
3)Далее настроить как здесь указано. Кстати , если ОС 2012 то могут быть проблемы с драйверами. здесь http://dbasimple.blogspot.ru/2013/05/32-odbc-64.html указал, как 32 битные, как их настроить на 64 битной машине.
4) После этого составляем обычный sql запрос через OPENQUERY. Должно все работать.