2012-07-23 10 views
5

Ich habe ein Problem mit einem SSIS-Job, den ich vor kurzem erstellt, die mit einem seltsamen Fehler bricht.Weird SSIS Fehler (Prozess Exit Code 255)

Background Info

Dies ist ein SSIS-Paket (DTSX), die mit einem SQL-Auftrag (SQL Server 2008, Auftrag erstellt mit SSMS) mit dem Typ SQL Server Integration Services-Paket, wie Sie es laufen wird erwarten von. Der Job läuft in unserer Entwicklungsumgebung einwandfrei, aber nicht in unserer Testumgebung. Das Paket verwendet eine Konfigurationsdatei (.dtsConfig), um die Verbindungszeichenfolgen für die verschiedenen Umgebungen zu verwalten. Was das Paket tatsächlich macht, ist ziemlich einfach; Es schneidet einige Staging-Tabellen ab und füllt dann Daten aus einer Oracle-Datenbank mit acht Datenflusstasks in einem Sequenzcontainer, wobei jede Aufgabe in Source (Oracle) -> Datenkonvertierung (für Unicode-Strings) -> Destination (SQL Server). Aufgrund der Oracle-Verbindung, die durchgeführt werden muss, enthält das Paket den Benutzer/Pass für diese Verbindung und hat daher die Schutzstufe "EncryptSensitiveWithPassword", um dies zu gewährleisten. Auf dem Server, auf dem dieser Job ausgeführt wird, wird Windows Server 2008 R2 SP1 ausgeführt. Ich glaube, das ist es so weit wie Hintergrundinformationen, aber wenn ich anythign verpasste, lass es mich wissen.

Der tatsächliche Fehler

Dies ist die einzige nützliche Nachricht in der Jobgeschichte gebrochen Jobs:

Der Schritt keine Ausgabe generiert haben. Der Rückgabewert war unbekannt. Der Prozessbeendigungscode war 255. Der Schritt ist fehlgeschlagen.

Wie Sie sehen können, nicht sehr hilfreich. Der eigentliche Kicker ist, dass wenn ich diesen Job manuell mit DTEXEC auf dem Server ausführen, läuft es gut. Dies führt mich zu der Annahme, dass es kann ein Berechtigungsproblem mit dem sqlagentadmin oder etwas sein, aber alles, was ich sehe, scheint gut. Ich habe ausgecheckt, was mit dem procexplorer passiert ist, und es wurde der korrekte DTEXEC-Befehl ausgeführt. Die Anwendung Ereignisanzeige nicht mit diesem obwohl Pop-up (so vielleicht seine Orakel Fahrerausgabe):

Faulting application name: DTExec.exe, version: 2007.100.5500.0, time stamp: 0x4e7b1ed6 
Faulting module name: OraClient11.Dll, version: 11.2.0.1, time stamp: 0x4bb1dcae 
Exception code: 0xc0000005 
Fault offset: 0x0000000000057106 
Faulting process id: 0x2d94 
Faulting application start time: 0x01cd66b0d360164d 
Faulting application path: C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe 
Faulting module path: c:\app\product\11.2.0\client_1\bin\OraClient11.Dll 
Report Id: 118a2173-d2a4-11e1-b1ec-001517955142 

Ich habe stundenlang um das Internet geschaut und ich habe ein paar Dinge ausprobiert. Ich habe die Delay-Validierungseigenschaft in allen Datenflussaufgaben auf "True" geändert. Ich habe versucht, den Job mit der integrierten SSIS-GUI einzurichten, und mit der Betriebssystemoption, nur den dtexec auszuführen, schlagen beide fehl.

Irgendwelche Vorschläge? Sorry für die Textwand, aber ich wollte nur sicherstellen, dass ich alles abgedeckt habe.

Danke!

+1

Es sieht aus wie der Oracle-Treiber, den Sie ausführen, nicht ordnungsgemäß funktioniert. Die vorletzte Zeile Ihrer Fehlerausgabe besagt, dass der Fehler innerhalb von OraClient11.Dll liegt. Können Sie versuchen, dies auf einer anderen Maschine auszuführen? – rvphx

+0

Ich nehme an, Sie haben keine Paketprotokollierung aktiviert? – billinkc

+0

Das Konto, das das Paket im Test ausführt, ist dasselbe wie das Konto des SQL-Agenten oder haben Sie einen Proxy? Ist es in Ihrer Entwicklungsumgebung so eingerichtet, wie Sie es am besten beurteilen können? – billinkc

Antwort

0

Ist Ihr Server ein 64-Bit-Server? Was ist mit dem Oracle-Server? Bei der Verwendung von SSIS zur Verbindung mit einem Oracle-Server hatten wir sehr ähnliche Probleme. Wir mussten sowohl die 64-Bit- als auch die 32-Bit-Client-Tools auf unserem 64-Bit-Server installieren.

Darüber hinaus gibt es ein Flag, das Sie möglicherweise im SQL-Agent-Job festlegen müssen, um anzugeben, dass kein 64-Bit verwendet werden soll. Sehen Sie sich die Eigenschaften für den Schritt an. Wechseln Sie zur Registerkarte Konfiguration, klicken Sie dann auf die Registerkarte Erweitert (in SQL 2008 kann dies ein wenig anders sein), markieren Sie "32-Bit-Laufzeit" und versuchen Sie es erneut. Dies könnte sein, dass es beim Debuggen funktioniert, aber nicht als Job funktioniert.

1

Ich habe den folgenden Fehler: 'Der Schritt hat keine Ausgabe generiert. Der Rückgabewert war unbekannt. Der Prozessbeendigungscode war 255. Der Schritt ist fehlgeschlagen.' Um mein Problem zu lösen, habe ich nach Berechtigungen zum Lesen der Quelldaten gesucht. Ich hatte nicht die richtigen Privilegien. Habe die richtigen Privilegien und starte meinen Job neu, löste das Problem. Ich könnte vorschlagen, dass die API zwischen SSIS als die ausführende Aufgabe und in meinem Fall DB2-Datenquelle-Anbieter Fehler mit besseren Informationen zuweisen sollte: -) Problem gelöst durch Lese Lese priviliged zu Quelldaten.