I’m developing using the v3.5 Server implementation with a licensed designer, basing my ‘etl jobs’ on a single JobFlow composed of one or more Graphs (my jobs can afford to be relatively shallow). Using the ‘Fail’ component in my Graphs seems to block the error message from bubbling up to the JobFlow. I would like to ensure that:
-
a JobFlow execution is terminated as soon as any graph or JobFlow component encounters an exception/error, and
-
the origin of the exception/error is clearly visible at the JobFlow level sp my server’s administrator doesn’t have to dig to find them
For example, if my JobFlow’s third Graph executes a DB sproc which raises an error with a message, I’d like my Clover server admin to see that error message in the Execution History → Overview → Error Message field. Is there a usual pattern for such requirements?
Thank you for any insights,
-- flag
Hi,
The described behavior already is the default one, this is how the jobflow is supposed to work. So the question is what is different on your side.
- Jobflow is automatically stopped when a child graph ends with error. If you want to change this default behavior, you can set “Stop processing on fail” property to true.
- Error message in a child graph is automatically propagated into the parent jobflow. There are settings which prevent this from happening but they have to be set manually.
Could you please send me the jobflow and the graph? I would like to see the settings you used.
Thanks.
Thanks for responding, Lubos.
I believe the problem we were having is that we believed we needed to use the Fail component inside our Graphs. All we had to do was remove the Fail components from inside the graphs and the errors bubbled up as expected!
However, some of our graphs apply business rules which require us to throw an exception (via a Fail component) when those rules have been broken. I’ll spend a few days reproducing my issue before wasting your time on my jobflow and graphs. For now, we can work around this if we edit the JobFlow’s Fail component’s mapping like so:
ExecuteGraph_RunStatus.errMessage → Fail.errorMessage
(these aren’t automatically mapped as we expected them to be)
I’ll get back to you early next week with a sample jobflow/graph.
Thanks,
-- flag
After a little more experimentation, we determined we do get teh desired behavior when configured properly.
Thanks again!
-- flag