64bit MSSQL28/BIDS/SSIS/ODBC Systemdatenquelle wird nicht gefunden

20/05/2010 - 12:57 von Sven W. | Report spam
Hallo zusammen,

ich habe folgendes Problem: ich versuche per SSIS (MSSQL 2008 auf
Windows2003 64bit) auf eine DB2 Datenbank zuzugreifen. Für den DB2
Datenbank-Zugriff habe ich das Programm DB2 Connect. Der Zugriff erfolgt über
eine ODBC Systemdatenquelle. Die ODBC Datenquelle wird von DB2 Connect
erstellt. BIDS, SSIS sind auf der gleichen 64 bit Maschine.

Kleiner Exkurs - Problematik 32bit/64bit und ODBC

Ich habe festgestellt, dass 2 ODBC Administrationstools auf dem Windows
System existieren - eins unter \Windows\System32\ und eins unter
\Windows\SysWow64 - beide mit dem gleichen Namen ODBCAd32.exe.

Die von DB2 erstellte ODBC Datenquelle erscheint nur in der 64bit Version
der ODBC Administrators - hier stehen generell alle Treiber zur Verfügung.
Die andere 32bit Variante des ODBC Administrators zeigt nur 2 MSSQL Treiber
an und speziell die DB2 ODBC Systemdatenquelle wird nicht angezeigt.

Die ODBC Systemdatenquelle (in der 64bit Version des ODBC Admin Tools) kann
aber getestet werden und der Zugriff funktioniert generell.



Wenn ich aus BIDS ein neues SSIS Projekt erstelle und mir eine ADO.Net
Connection erstelle mit Zugriff auf eine ODBC Systemdatenquelle, dann wird
mir die benötigte und erstellte Systemdatenquelle angezeigt, kann sie
auswàhlen und Verbindung testen - OK. Ich will Daten laden, also erstelle ich
mir einen Dataflow Task. Im Dataflow Task erstelle ich mir eine Datasource,
welche auf die erstellte Connection zurückgreift. Ich kann mir im Designer
alle Eigenschaften und selbst Daten im Preview Modus anzeigen. Sobald ich den
Debugger starte erscheint folgende Fehlermeldung:

ADO NET-Quelle [1]] Fehler: System.Data.Odbc.OdbcException: ERROR [IM002]
[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden,
und es wurde kein Standardtreiber angegeben
bei System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle,
RetCode retcode)

Es stellt sich mir also nun so dar, als könnte SSIS die ODBC
Systemdatenquelle nicht finden, obwohl im Designer die Connection sichtbar,
konfigurierbar ist und selbst Daten im Preview-Modus dargestellt werden
können.

Nun meine Frage: in welchem Modus làuft BIDS - 32/64bit ? In welchem Modus
làuft SSIS (bzw. DTSEXEC) ? Kann man hier Einstellungen veràndern, die das
Problem lösen ? wieso kann DTSEXEC die ODBC Systemdatenquelle nicht sehen ?

Für Hinweise bin ich sehr dankbar.

Grüße
Sven
 

Lesen sie die antworten

#1 Gerald Aichholzer
20/05/2010 - 13:38 | Warnen spam
Hallo Sven,

Sven W. wrote:
[SSIS und 32/64-Bit ODBC]



BIDS làuft immer im 32-Bit-Modus, d.h. es kann auch nur
32-Bit-ODBC-Treiber sehen. Wird unter BIDS ein Paket aus-
geführt, so wird jedoch auf einem 64-Bit-System die 64-
Bit-Runtime verwendet. Diese kann nur die 64-Bit-ODBC-
Treiber sehen.

Es gibt jedoch in den Projekteigenschaften einen Schalter,
mit dem das Verwenden der 64-Bit-Runtime unterdrückt wer-
den kann (Use64BitRuntime).

Vom Kommandozeilentool dtexec zum Ausführen der Pakete
gibt es zwei Versionen: 32 und 64 Bit. Der Dateiname ist
gleich, sie befinden sich jedoch unter C:\Programme bzw.
C:\Programme (x86).

Beim Ausführen von Paketen über den SQL Server Agent
gibt es eine Option, um den 32-Bit-Modus zu erzwingen.
Das sieht zwar wie ein Kommandozeilenschalter aus, der
jedoch (aus welchen Gründen auch immer) nur im Agent
funktioniert.

hth,
Gerald

Ähnliche fragen