Hoe ADF-pipeline fouten eruitzien
Azure Data Factory genereert geen enkele foutklasse. Een mislukte pipeline run kan een numerieke code in het bereik 2xxx, 3xxx of 5xxx opleveren, een klassenaam UserError* van de copy activity, een HRESULT van de self-hosted integration runtime of een kale .NET-uitzonderingsnaam zoals OutOfMemoryException. Aan de vorm van de fout kun je al zien waar die vandaan komt, nog voordat je het bericht leest.
UserError* klasse komt uit het activiteitenlog, niet uit het runlog. In het run log zie je alleen "Activity 'CopyToWarehouse' failed" — twee klikken diep om de echte oorzaak te vinden.
Drie log-overzichten genereren deze fouten en ze komen niet altijd overeen:
- Run log — de uitvoeringsgeschiedenis per pipeline in het tabblad Monitoring van ADF Studio. Toont de mislukte activiteit, de duur en het foutbericht dat door die activiteit is geretourneerd. Dit is de weergave die je bereikt door op de mislukte uitvoering te klikken.
- Activity log — de diagnostische details per pipelineactiviteit. Voor een copy activity zie je hier
UserErrorAzureBlobOperationFailedofUserErrorCopyActivityInvalidSinkConfiguration. Voor een zelfgehoste IR-activiteit worden hier deHRESULTen de stacktrace weergegeven.
- Trigger log — de uitvoeringsgeschiedenis van de trigger. Een pipeline die nooit is gestart omdat de geplande trigger is mislukt, wordt hier weergegeven, niet in het run log. Gemakkelijk over het hoofd te zien als je alleen de pipelineweergave controleert.
Het lezen van het verkeerde logboek is de eerste plek waar engineers tijd verliezen. Een pipeline die in het run log als "in de wachtrij" wordt weergegeven, kan een fout op trigger niveau hebben die alleen zichtbaar is in het trigger log. Een copy activity die in het run log een algemene status "mislukt" retourneert, heeft de daadwerkelijke UserError*-klasse meestal pas twee klikken diep in de details op activiteitsniveau te vinden.