Я пытаюсь заставить поставщика данных DB2 из 32-битного приложения .Net подключиться к DB2, работающей как 32-битное приложение в Vista 64 (достаточно ли это сбивает с толку)? К сожалению, я получаю следующую ошибку:
SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7, tokens 9.5.0.DEF.2, SOFTWARE\IBM\DB2\InstalledCopies
Есть несколько упоминаний об этом в Сообщения на форуме IBM, но мало полезных указаний. Кто-нибудь испытывал такое раньше? Или у вас есть идеи получше, как это исправить?





Я смутно помню, что у меня была аналогичная проблема со звуком с драйвером oledb DB2 for as / 400 при попытке настроить связанный сервер с sql 2005 на as / 400. Это была проблема с разрешениями, и в конце концов я обнаружил, что только учетные записи sql-сервера (не Windows) могут использовать связанный сервер, потому что (я думаю) тогда драйвер загружался с использованием учетных данных sql вместо олицетворенных. Если он работает при запуске от имени администратора, тогда это должны быть разрешения.
Я полагаю, вы видели запись SQL1159 в Справочное руководство по DB2?
К сожалению для вас, коды причин заканчиваются на 6, а не на 7. В нем говорится:
User response: There was a problem with your DB2 installation. If this is the first time DB2 was installed on this computer, review the install logs for any possible errors and run a repair of DB2 from the Add/Remove Programs control panel applet. The default location of the installation logs is the My Documents/DB2LOG folder of the user that performed the installation. If this does not resolve the issue please contact IBM Support and provide the reason code associated with this message along with any installation logs.
Поэтому я думаю, попробуйте переустановить его, и если проблема не исчезнет, вам придется связаться с IBM.
Извините, я знаю, что это не очень помогает.
Требуется ли, чтобы он работал как x86? У меня были аналогичные проблемы с веб-приложениями на веб-сервере разработки Visual Studio (это x86), но для меня сработал переход на IIS (x64). Поскольку я развертывал на IIS x64, я решил, что это конец.
Я пробовал трассировку с помощью Filemon и Regmon, но не получил никаких ошибок с отказом или отсутствием ключей. Если бы я посмотрел еще раз, я бы проверил HKLM \ Software \ WOW6432Node, предполагая, что установщик записывает на узел x64 HKLM \ Software, но не на узел x86.
Я удалил предыдущую 32-битную версию, переустановил как 64-битную, и теперь у меня совершенно другая ошибка. Упоминается, что для исправления требуется FP2, но поскольку я использую Express-C, я не могу установить пакет исправлений (IBM не предоставляет пакеты исправлений для бесплатных продуктов DB2). В любом случае спасибо за помощь. По крайней мере, сейчас я могу приблизиться к подключению. :)
Я столкнулся с этой ошибкой и на сервере Windows 2003 x86. Изначально моя проблема была
Unable to find the requested .net framework data provider. it may not be installed.
что привело к комментариям о том, что в c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config отсутствуют необходимые записи для раздела DbProviderFactories. И действительно, там не было записей IBM DB2. Когда я вручную добавил запись, я столкнулся с этой вашей ошибкой, предполагающей, что существует более, а не просто редактирование machine.config.
В итоге я удалил набор драйверов IBM DB2, перезагрузил систему, переустановил ее и получил правильную инициализацию соединений.
Просто вкратце ...
@Micheal: ссылка, которую вы имели для SQL1159, - это версия 9.1 docs
В документации к версии 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 (Windows AMD 64) Версия 9.5
из
_https: //www14.software.ibm.com/webapp/iwm/web/preLogin.do? lang = en_US & source = swg-idsrc11 & S_TACT = appddnet & S_CMP = ibm_im
Если вы запустите свою программу, вы получите следующее исключение
Необработанное исключение: исключение System.Overflow: арифметика операция привела к переполнению. в IBM.Data.DB2.DB2ConnPool.Open (соединение DB2Connection, StringszConnectionStringIn, 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. Душа: