Announcement

Collapse
No announcement yet.

SSIS ConnectionManager dynamisch in Script

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SSIS ConnectionManager dynamisch in Script

    Hallo Kollegen,

    ich habe mich in SSIS eingearbeitet und ein Projekt für einen Datenabgleich bekommen. Der Service soll einfach Daten vom Quelle zum Ziel senden, wenn nicht vorhanden. Ich habe das erst einmal mit den visuellen Komponenten gemacht.
    Der Weg geht auch ganz gut, hat aber den großen Schwachpunkt, das er immer den gesamten Inhalt einer Tabelle vergleicht. Bei einen Tabelle mit mehreren hundert Tausenden von Einträgen, echt uncool.

    Also habe ich einen Weg gemacht, der Smart ist und nur das Delta überträgt. Das ganze kann man per Konfigurationstabelle auch steuern. Soweit so gut. Als Konfiguration habe ich 2 Felder QuellServer und ZielServer.
    Diese benötige ich, um im PreExecute Ereignis den ConnectionString zu erstellen und den OLE Datenbankobjekten zu zuweisen. Das geht auch im Script.ohne Fehler.

    Aber wenn dann der Datenfluss Task arbeitet bekomme ich dann ein Fehler:
    [Quelle_p_Computer [2]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER . The AcquireConnection method call to the connection manager "QuellDB" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.

    Der Code:

    // Die Datenbankverbindung umsetzen
    Dts.Connections["QuellDB"].OfflineMode = true;
    Dts.Connections["ZielDB"].OfflineMode = true;
    Dts.Connections["QuellDB"].ConnectionString = @String.Format(@strConStr, strUser, strDatabase, @Dts.Variables["QuellDBConStr"].Value);
    Dts.Connections["ZielDB"].ConnectionString = @String.Format(@strConStr, strUser, strDatabase, @Dts.Variables["ZielDBConStr"].Value);
    Dts.Connections["QuellDB"].OfflineMode = false;
    Dts.Connections["ZielDB"].OfflineMode = false;
    Ich habe eine Idee woran es liegen könnte. Die Transaktion ist weg, bzw nach dem umschalten auf den neuen Server ungültig.
    Aber wie kann ich das ändern.

    Danke Torsten
Working...
X