SSIS-Paket läuft nicht als Job
Hallo,
ich habe ein SSIS-Paket, das in der Entwicklungsumgebung sowie als Stored Package einwandfrei läuft.
Trage ich es aus Job ein, so funktioniert das Paket nicht. Genau genommen hängt es sich auf.
Gruß
cheapy
Das Paket ist folgendermaßen aufgebaut:
Ich habe einen ForLoop Container, in dem sich ein Execute-Container befindet.
Dieser Container enthält drei Schritte:
Schritt1 ist ein VB-Script, dass in einem Verzeichnis auf einem Netzlaufwerk Dateien sucht und jeweils eine noch nicht bearbeitete Datei in eine Datei mit einem festgelegten Namen kopiert. Die Namen der bereits verarbeiteten Dateien werden in einer Tabelle gespeichert.
Nach dem Kopieren der Datei werden die Daten dieser Datei mit einer DataFlow Task in eine Datenbanktabelle kopiert.
Anschließend wird der Name der gelesenen Quelldatei in eine Datenbanktabelle geschrieben.
Danach durchsucht dann wieder das Script das Verzeichnis nach weiteren nicht gelesenen Dateien.
Sind alle Dateien bearbeitet, kommt das Script mit dem Status Complete zurück und der/die Container sind fertig.
Das Problem ist nun wohl, dass das Script ein Problem hat.
Da ich keine bessere Testmöglichkeit kenne, habe ich vor und nach dem Script eine Send Mail Task eingebaut.
Da die Task die nach dem Script eine Mail mit dem Namen der gerade bearbeiteten Datei versenden soll nicht zum Zuge kommt, vermute ich, dass das VB Script ein Problem hat, denn der Auftrag als Job läuft.
Kann mir jemand sagen, wie ich dem Fehler auf die Spur kommen kann?
Um es vorweg zu nehmen:
Versuche den Job über einen Proxy-User laufen zu lassen und die Verwendung einer URL anstatt eines Pfadnamens haben ebenfalls zu keinem Ergebnis geführt.
Kann mir jemand einen Tipp geben, wie ich der Sache auf die Spur kommen kann?
ich habe ein SSIS-Paket, das in der Entwicklungsumgebung sowie als Stored Package einwandfrei läuft.
Trage ich es aus Job ein, so funktioniert das Paket nicht. Genau genommen hängt es sich auf.
Gruß
cheapy
Das Paket ist folgendermaßen aufgebaut:
Ich habe einen ForLoop Container, in dem sich ein Execute-Container befindet.
Dieser Container enthält drei Schritte:
Schritt1 ist ein VB-Script, dass in einem Verzeichnis auf einem Netzlaufwerk Dateien sucht und jeweils eine noch nicht bearbeitete Datei in eine Datei mit einem festgelegten Namen kopiert. Die Namen der bereits verarbeiteten Dateien werden in einer Tabelle gespeichert.
Nach dem Kopieren der Datei werden die Daten dieser Datei mit einer DataFlow Task in eine Datenbanktabelle kopiert.
Anschließend wird der Name der gelesenen Quelldatei in eine Datenbanktabelle geschrieben.
Danach durchsucht dann wieder das Script das Verzeichnis nach weiteren nicht gelesenen Dateien.
Sind alle Dateien bearbeitet, kommt das Script mit dem Status Complete zurück und der/die Container sind fertig.
Das Problem ist nun wohl, dass das Script ein Problem hat.
Da ich keine bessere Testmöglichkeit kenne, habe ich vor und nach dem Script eine Send Mail Task eingebaut.
Da die Task die nach dem Script eine Mail mit dem Namen der gerade bearbeiteten Datei versenden soll nicht zum Zuge kommt, vermute ich, dass das VB Script ein Problem hat, denn der Auftrag als Job läuft.
Kann mir jemand sagen, wie ich dem Fehler auf die Spur kommen kann?
Um es vorweg zu nehmen:
Versuche den Job über einen Proxy-User laufen zu lassen und die Verwendung einer URL anstatt eines Pfadnamens haben ebenfalls zu keinem Ergebnis geführt.
Kann mir jemand einen Tipp geben, wie ich der Sache auf die Spur kommen kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150475
Url: https://administrator.de/forum/ssis-paket-laeuft-nicht-als-job-150475.html
Ausgedruckt am: 11.04.2025 um 18:04 Uhr
12 Kommentare
Neuester Kommentar
ok, ich verstehe jetzt vielleicht auch was falsch 
Du kannst das Zeug ja durch den Debugger, da läuft es durch und der Fehler kommt nur, wenn Du das SSIS Paket auf dem SQL Server in der Job-Schlange hast?
Wenn Du allerdings annimmst, das VB Script hat ne Macke, dann kannst Du es doch 'trocken' in einer CMD ablaufen lassen nachdem Du die entspreche Umgebung (Pathvariablen, evtl. verbundene Laufwerke etc.) nach gestellt hast, bzw. direkt auf dem ausführendem Server.
Mit der URL meinst Du eher den UNC-Pfad? (\\SERVERNAME\SHARE\Vz\....\DATEINAME)
Karo
Du kannst das Zeug ja durch den Debugger, da läuft es durch und der Fehler kommt nur, wenn Du das SSIS Paket auf dem SQL Server in der Job-Schlange hast?
Wenn Du allerdings annimmst, das VB Script hat ne Macke, dann kannst Du es doch 'trocken' in einer CMD ablaufen lassen nachdem Du die entspreche Umgebung (Pathvariablen, evtl. verbundene Laufwerke etc.) nach gestellt hast, bzw. direkt auf dem ausführendem Server.
Mit der URL meinst Du eher den UNC-Pfad? (\\SERVERNAME\SHARE\Vz\....\DATEINAME)
Karo
da es in dem VB-Script um Dateioperationen geht reicht doch ein cscript <VBSCRIPTNAME> in einer CMD aus, um zumindest erst einmal zu erkennen, ob es unter anderen Namen geht. Du kannst natürlich auch %WINDIR%\system32\CMD.exe im Explorer mittels 'ausführen als' mit dem User ausführen unter dem der SQL Job läuft.
Karo
Karo
hm, habe vielleicht ne kleine Fehlinterpretation...
Nochmal für mich: Du hast ein SSIS Paket (achso, von welcher SQL Serverversion sprechen wir hier eigentlich?) in dem Du ein Script Task hast (VB.Net oder VB 2008, siehe auch Frage SQL Version). Dieser Task macht die Dateioperationen. Der wiederum läuft wenn Du es im Debugger laufen läßt aber nicht per Job Schedule?
Wäre es jetzt ein Job Task, das war meine erste Interpretation, so hättest Du per VBS einen CMD Step im Job machen können.
Womit wir beim Thema sind. Denn im SQL Server Job kannst Du das Logging bzw. Ausgabedes Logs anpassen. Das hilft vielleicht.
Karo
Nochmal für mich: Du hast ein SSIS Paket (achso, von welcher SQL Serverversion sprechen wir hier eigentlich?) in dem Du ein Script Task hast (VB.Net oder VB 2008, siehe auch Frage SQL Version). Dieser Task macht die Dateioperationen. Der wiederum läuft wenn Du es im Debugger laufen läßt aber nicht per Job Schedule?
Wäre es jetzt ein Job Task, das war meine erste Interpretation, so hättest Du per VBS einen CMD Step im Job machen können.
Womit wir beim Thema sind. Denn im SQL Server Job kannst Du das Logging bzw. Ausgabedes Logs anpassen. Das hilft vielleicht.
Karo