June 14, 2019 at 2:50 pm
Hi,
Very simple question here but can't seem to find the answer...
I have a SSIS package that does nothing but call other SSIS packages, all in parallel (no precedence contraint)
I want the parent package to fail whenever any child package fails...
That's the easy part...
But I wan't the parent package to fail right away and immediately stop the execution of any ongoing child.
In other words, if any child should fail, they should all stop at once.
Any further processing is a waste of time and therefore should not happen.
I will manage to cleanup the incomplete processing in the OnError of the master package.
Is there any way to do that?
Thanks,
Vincent
June 14, 2019 at 2:53 pm
Don't think you can. Precedence constraints are the answer – what is the reason for you not using them?
The absence of evidence is not evidence of absence
- Martin Rees
The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
- Phil Parkin
June 14, 2019 at 3:00 pm
I agree with Phil, I don't believe you can either. This sounds like an XY problem here. If all these tasks are reliant on others, then the control flow should be defined so.
Otherwise, if it does fail, you could instead use a Sequence Container to roll back (all) the transactions.
Thom~
Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
Larnu.uk
June 14, 2019 at 3:07 pm
I need my child packages to run in parallel (multi-threading)...
They're loading lots of data and I can't wait for one to finish before starting the other.
I've tried that and the result is far too long to be efficient
Thanks
June 14, 2019 at 3:42 pm
I need my child packages to run in parallel (multi-threading)... They're loading lots of data and I can't wait for one to finish before starting the other. I've tried that and the result is far too long to be efficient Thanks
If there are no dependencies between loads A, B and C, why do you want to fail loads B and C if A fails?
The absence of evidence is not evidence of absence
- Martin Rees
The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
- Phil Parkin
June 14, 2019 at 4:19 pm
I have not really used them but this seems like maybe a case for using checkpoints. I'm not sure how that would work with no constraints. If the checkpoints could go in the child packages. I guess the master would just kick off everything again.
I don't think there is a simple fix, like Phil said if there is no dependency can you add some logging that can be checked on a subsequent run to maybe control the running of packages to only those that failed on the last run.
I mean if only one package failed and everything else worked the fastest recovery is to only re-run the failed package.
Have and exec SQL task prior to each Exec pkg task that checks some kind of logging/audit table and sets a variable to control the constraint.
Then on failure have a restart, then it would selectively run only the failed package.
hth
June 17, 2019 at 2:39 pm
Thanks for the suggestions...
I don't really need to implement a new mechanic here though.
I already have a mechanic that reruns what needs to be.
But I have multi thread packages that very occasionally can fail on one thread.
When they do, I would want them to completely stop instead of finishing all remaining threads, which could be long.
But for what I tested and what you guys confirmed, it seems impossible to do.
Thanks,
Vincent
Viewing 7 posts - 1 through 6 (of 6 total)
You must be logged in to reply to this topic. Login to reply