2008-08-27 4 views
4

Ich versuche, den DB2-Datenprovider von einer 32-Bit-.NET-Anwendung abzurufen Verbindung zu DB2 herzustellen, das unter Vista 64 als 32-Bit-Anwendung ausgeführt wird (ist das noch verwirrend genug)? Leider erhalte ich folgende Fehlermeldung:SQL1159 Initialisierungsfehler mit DB2 .NET Data Provider, Ursachencode 7, Token 9.5.0.DEF.2, SOFTWARE IBM DB2 InstalledCopies

SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7, tokens 9.5.0.DEF.2, SOFTWARE\IBM\DB2\InstalledCopies

Es gibt mehr IBM forum posts zu erwähnen, aber wenig nützliche Anleitung. Hat das schon mal jemand erlebt? Oder haben Sie bessere Ideen, um das Problem zu beheben?

Antwort

2

Ist es erforderlich, dass es als x86 ausgeführt wird? Ich hatte ähnliche Probleme mit Web-Anwendungen unter Visual Studio Dev-Webserver (x86), aber die Umstellung auf IIS (x64) funktionierte für mich. Seit ich auf IIS x64 umgestellt habe, habe ich es an diesem Tag als Tag bezeichnet.

Ich habe versucht, mit Filemon und Regmon Tracing, aber keine oder fehlende Schlüssel Fehler erhalten. Wenn ich noch einmal nachsehen würde, würde ich HKLM \ Software \ WOW6432Node prüfen und raten, dass das Installationsprogramm auf den x64 HKLM \ Software-Knoten schreibt, aber nicht auf den x86-Knoten.

1

Ich erinnere mich vage daran, ein ähnlich klingendes Problem mit dem OLEDB-Treiber von DB2 for/400 zu haben, als ich versuchte, einen Verbindungsserver von SQL 2005 zum AS/400 einzurichten. Es war ein Berechtigungsproblem und ich fand schließlich, dass nur SQL Server-Konten (nicht Windows) den Verbindungsserver verwenden konnten, weil (glaube ich) dann der Treiber geladen wurde, indem die Anmeldeinformationen der SQL-Instanz anstelle von imitiertem verwendet wurden. Wenn es funktioniert, wenn "run as" admin, dann muss es Berechtigungen sein.

1

Ich nehme an, Sie haben die Aufzählung von SQL1159 in der DB2 Reference Guide gesehen?

Leider für Sie, der Reason-Codes stoppt bei 6 und nicht weiter zu 7. Es sagt aber:

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.

also denke ich versuche, es zu installieren und wenn das Problem weiterhin musst du Wenden Sie sich an IBM.

Sorry, ich weiß, das hilft nicht viel.

0

Ich deinstallierte die vorherige 32-Bit-Version, neu installiert als 64-Bit, und jetzt bekomme ich einen komplett anderen Fehler. Es wird erwähnt, dass FP2 repariert werden muss, aber da ich Express-C verwende, kann ich das Fixpack nicht installieren (IBM bietet keine Fixpacks für freie DB2-Produkte an). Wie auch immer, danke für die Hilfe. Zumindest kann ich jetzt näher kommen. :)

0

Ich habe diesen Fehler auch auf einem Windows 2003 x86-Server festgestellt. Ursprünglich war mein Problem

Unable to find the requested .net framework data provider. it may not be installed.

, die Kommentare geführt, dass c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config wurde, die notwendigen Einträge für den DbProviderFactories Abschnitt fehlt. Und tatsächlich gab es dort keine IBM DB2-Einträge. Als ich einen Eintrag manuell hinzugefügt habe, bin ich dann auf diesen Fehler gestoßen, der darauf hinweist, dass es mehr als nur Bearbeitung von machine.config gibt.

Ich habe sogar den IBM DB2-Treibersatz deinstalliert, das System neu gestartet, neu installiert und die Verbindungen ordnungsgemäß initialisiert.

0

nur als kurze Notiz ...

@Micheal: der Link für SQL1159 hatte, ist auf die Version 9.1 docs
Die Version 9.5 Dokumentation geht bis zu Ursachencode 9
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql01159n.html

Leider, ich glaube, es ein 10. Grund-Code ist, dass es nicht dokumentiert ist, aber es ist in einem developer Thema
http://www.ibm.com/developerworks/wikis/display/DB2/DB2+and+.NET+FAQ#DB2and.NETFAQ-WhatisSQL1159InitializationError%3F

0

ich das gleiche Problem mit DB2 hatte .net Anbieter.

Wenn Sie Windows 64-Bit dann herunterladen und IBM Data Server Runtime Client (Windows AMD 64) Version 9.5
von _https installieren: //www14.software.ibm.com/webapp/iwm/web/preLogin .do lang = en_US & source = SWG-idsrc11 & S_TACT = appddnet & S_CMP = ibm_im

Wenn Sie Ihr Programm ausführen würden Sie die folgende Ausnahme erhalten

Unbehandelte Ausnahme:? System.Overflow Ausnahme: Arithmetic Betrieb führte zu ein Überlauf. bei IBM.Data.DB2.DB2ConnPool.Open (DB2Connection Verbindung, StringszConnectionStringIn, DB2ConnSettings & ppSettings, Objekt & ppConn) bei IBM.Data.DB2.DB2Connection.Open()

Downloaden und installieren Sie das Update für Ihre db2 Version von http://www-01.ibm.com/support/docview.wss?uid=swg1IZ09579

Dies würde das Problem beheben.

0

Installieren Sie DB2 Express-C für Win x64, Version 9.7.1 und es würde funktionieren

0

ich ähnliches Problem hatte, meine Maschine ist 64-Bit. Ich habe sowohl 32bit als auch 64bit db2 Runtime Clients installiert, das Zielframework in meinem Projekt auf 32 Bit gesetzt, für mich perfekt funktioniert. Ich konnte die Anwendung auf anderen 64/32-Bit-Maschinen ausführen, nur sie müssen entweder das 32-Bit- oder das 64-Bit vom db2-Laufzeit-Client installieren, abhängig vom Betriebssystem der Maschine.

0

Ja. Dies sollte in Ihrem Windows 7 und nicht in Windows XP geschehen. Die soultion ist:

  • Recht vor, das Projekt klicken in Lösung Explorer
  • Eigenschaften
  • Compile Registerkarte (linke Seite)
  • Scroll down Erweiterte Compile Option Taste
  • zu sehen Ändern Sie das Dropdown-Feld Target Cpu auf x86.