SQL1159 Ошибка инициализации с поставщиком данных DB2 .NET, код причины 7, токены 9.5.0.DEF.2, SOFTWARE\IBM\DB2\InstalledCopies

StackOverflow https://stackoverflow.com/questions/29370

  •  09-06-2019
  •  | 
  •  

Вопрос

Я пытаюсь заставить поставщика данных DB2 из 32-битного приложения .Net подключиться к DB2, работающему как 32-битное приложение в Vista 64 (это уже достаточно запутанно)?К сожалению, я получаю следующую ошибку:

SQL1159 Ошибка инициализации с поставщиком данных DB2 .NET, код причины 7, токены 9.5.0.DEF.2, SOFTWARE\IBM\DB2\InstalledCopies

Есть несколько Сообщения на форуме IBM упоминая об этом, но мало полезных указаний.Кто-нибудь сталкивался с этим раньше?Или у вас есть идеи получше, как это исправить?

Это было полезно?

Решение

Вам необходимо, чтобы он работал как x86?У меня были аналогичные проблемы с веб-приложениями на веб-сервере разработки Visual Studio (x86), но мне помогло переключение на IIS (x64).Поскольку я выполнял развертывание на IIS x64, на этом я закончил.

Я пробовал трассировку с помощью Filemon и Regmon, но не обнаружил ошибок с отказом или отсутствием ключей.Если бы я посмотрел еще раз, я бы проверил HKLM\Software\WOW6432Node, предполагая, что установщик записывает в узел HKLM\Software x64, а не в узел x86.

Другие советы

Я смутно припоминаю, что у меня была похожая проблема с драйвером DB2 для as/400 oledb при попытке настроить связанный сервер с sql 2005 на as/400.Это была проблема с разрешениями, и в конце концов я обнаружил, что только учетные записи сервера sql (а не Windows) могут использовать связанный сервер, потому что (я думаю) тогда драйвер загружался с использованием учетных данных sql, а не олицетворенных.Если это работает при запуске от имени администратора, то это должны быть разрешения.

Я предполагаю, что вы видели описание SQL1159 в Справочное руководство DB2?

К несчастью для вас, коды причин заканчиваются на 6 и не продолжаются до 7.Там говорится:

Ответ пользователя:Возникла проблема с установкой DB2.Если DB2 устанавливается на этот компьютер впервые, просмотрите журналы установки на наличие возможных ошибок и запустите восстановление DB2 из апплета панели управления «Установка и удаление программ».Местоположением по умолчанию журналов установки является папка Мои документы/DB2LOG пользователя, выполнившего установку.Если это не решит проблему, обратитесь в службу поддержки IBM и предоставьте код причины, связанный с этим сообщением, а также все журналы установки.

Поэтому я думаю, попробуйте переустановить его, и если проблема не исчезнет, ​​вам придется обратиться в IBM.

Извините, я знаю, что это не очень поможет.

Я удалил предыдущую 32-битную версию, переустановил как 64-битную, и теперь получаю совершенно другую ошибку.Упоминается, что для исправления требуется FP2, но, поскольку я использую Express-C, я не могу установить пакет исправлений (IBM не предоставляет пакеты исправлений для бесплатных продуктов DB2).В любом случае спасибо за помощь.По крайней мере, теперь я могу приблизиться к соединению.:)

Я также столкнулся с этой ошибкой на сервере Windows 2003 x86.Изначально моя проблема была

Невозможно найти запрошенный поставщик данных .NET Framework.это не может быть установлено.

что привело к комментариям о том, что в c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config отсутствуют необходимые записи для раздела DbProviderFactories.И действительно, никаких записей IBM DB2 там не было.Когда я добавлял запись вручную, я столкнулся с вашей ошибкой, предполагающей, что существует более чем просто редактировать файл Machine.config.

В конце концов я удалил набор драйверов IBM DB2, перезагрузил систему, переустановил ее и правильно инициализировал соединения.

Просто на заметку...

@Майкл:ссылка, которую вы имели для SQL1159, связана с документами версии 9.1.
Документация версии 9.5 соответствует коду причины 9.
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql01159n.html

К сожалению, я думаю, что есть код 10-й причины, который там не документирован, но он есть в теме DeveloperWorks.
http://www.ibm.com/developerworks/wikis/display/DB2/DB2+and+.NET+FAQ#DB2and.NETFAQ-WhatisSQL1159InitializationError%3F

У меня была такая же проблема с провайдером DB2.net.

Если у вас есть 64 -битная Windows, загрузите и установите IBM Data Server Client Client Client (Windows AMD 64) Версия 9.5
от _https: //www14.software.ibm.com/webapp/iwm/web/pelogin.do? lang = en_us & source = swg-idsrc11 & s_tact = appddnet & s_cmp = ibm_im

Если вы запустите свою программу, вы получите следующее исключение

Необработанное исключение:Исключение System.Overflow:Арифметическая операция привела к переполнению.на ibm.data.db2.db2connpool.open (DB2Connection Connection, StringSconnectionStringin, DB2Connsettings & PPSettings, Object & PpConn) на iBm.data.db2.db2connection.open ()

Загрузите и установите исправление для вашей версии db2 с сайтаhttp://www-01.ibm.com/support/docview.wss?uid=swg1IZ09579

это решит проблему.

Установите DB2 Express-C для Win X64, версия 9.7.1, и он будет работать

У меня была аналогичная проблема, моя машина 64-битная.Я установил как 32-битные, так и 64-битные клиенты времени выполнения db2, установил в своем проекте 32-битную целевую платформу, и это отлично сработало.Мне удалось запустить приложение на других 64/32-битных машинах, просто им нужно установить либо 32-битную, либо 64-битную версию из клиента времени выполнения db2, в зависимости от ОС машины.

Да.Это должно произойти в Windows 7, а не в Windows XP.Душа это:

  • щелкните правой кнопкой мыши проект в обозревателе решений
  • Характеристики
  • Вкладка «Компиляция» (левая сторона)
  • Прокрутите вниз, чтобы увидеть Расширенная опция компиляции кнопка
  • Изменить раскрывающийся список Целевой процессор на х86.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top