четверг, 30 мая 2013 г.

Настройка IBM Lotus ODBC драйвера для MS SQL Server


    Недавно пришлось настраивать, а точнее восстанавливать, 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

Удачного подключения!

2 комментария :

  1. День добрый! Я сталкивался с той же ошибкой № 126 и могу решить проблему. Можете подсказать, какой софт должен стоять на компе, откуда нужно качать данные? Задачой является экспорт данных из базы Lotus в MSSQL. С Lotus Notes раньше не имел дела и не пользовался. Также перепробывал разные драйвера.

    ОС: Windows 7 64bit.

    Пока у меня есть веб подключение к Lotus Notes и нет понятии, что нужно ставить или конфигурировать для успешного подключение через ODBC, и что потребовать от админа. Клиент к Лотусу отсутствует. Скачал и поставил из IBM сайта trial клиент, но он не хочет находить сервер. Реистр перекапал и все пути поставил.

    ОтветитьУдалить
  2. 1)На том месте где будет происходить экспорт данных(а это там где стоит MS SQL сервер) из Лотуса должен быть установлен клиент лотуса и настроен под вами или той учетной записью, через которую должен быть импорт. Без этого шага никак . По настройке Лотуса обратитесь к своим лотусистам.Там при настройке нужно указать почтовый сервер, и должен подтянуться user.id.
    2)Пользователь должен иметь права к базе данных из которой будет импорт.
    3)Далее настроить как здесь указано. Кстати , если ОС 2012 то могут быть проблемы с драйверами. здесь http://dbasimple.blogspot.ru/2013/05/32-odbc-64.html указал, как 32 битные, как их настроить на 64 битной машине.
    4) После этого составляем обычный sql запрос через OPENQUERY. Должно все работать.

    ОтветитьУдалить