Immediately Fail Package Uppon Failure

  • 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

    Attachments:
    You must be logged in to view attached files.
  • Don't think you can. Precedence constraints are the answer – what is the reason for you not using them?

    If you haven't even tried to resolve your issue, please don't expect the hard-working volunteers here to waste their time providing links to answers which you could easily have found yourself.

  • 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

  • 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

  • Vince Poirier wrote:

    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?

    If you haven't even tried to resolve your issue, please don't expect the hard-working volunteers here to waste their time providing links to answers which you could easily have found yourself.

  • 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

     

  • 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