Pourquoi ne pas en faire mon échec flux d'amorcer une fois SSIS séquence contenant échoue?
J'ai quelques SSIS conteneurs de séquence, et si l'une des tâches dans leur échec, je veux diriger le flux d'une tâche SQL qui nettoie tout en place afin que je puisse résoudre le problème et de l'exécuter à nouveau sans avoir de doublons. Mon problème est que je ne peux pas obtenir le flux dirigé vers la tâche SQL de même, lorsque quelque chose dans l'un des conteneurs de séquence échoue. Semble que ce devrait être le comportement par défaut, mais il doit y avoir quelques réglages, je suis mising. J'ai joué avec réglage FailParentOnFailure, mais tout cela ne cesse de le reste du paquet en cours d'exécution. Je voudrais insérer une image pour les aider à comprendre ce que j'ai mis en place, mais suppose que ma réputation n'est pas assez bon encore. 😛
Fondamentalement, tout ce que j'ai est un quelques tâches de flux de données à l'intérieur d'un conteneur de séquence. Si l'une de ces tâches de flux de données en échec (si par exemple le fichier texte que je suis en train de charger dans la base de données n'est pas disponible), alors je veux le conteneur de séquence pour ensuite suivre la "échec" contrainte de précédence au lieu de la "réussite". Mais au lieu de le faire, soit il tue tout simplement l'ensemble du paquet. Si ce n'est pas la suite de "l'échec" de contrainte de précédence par défaut sur une erreur, alors je ne comprends pas ce que le point d'avoir un échec de la contrainte de précédence est.
OriginalL'auteur BeachBum | 2011-11-26
Vous devez vous connecter pour publier un commentaire.
Je pense que dans ce vraiment un cas où une image aurait aidé les autres à répondre à ma question. J'ai eu 3 conteneurs de séquence ont tous souligné à la même tâche SQL si ils ont échoué. Je voulais la tâche SQL à exécuter si l'un des conteneurs de séquence avait une erreur, de sorte que les contraintes de précédence a dû être mis à un OU logique, sinon il ne serait jamais fonctionner à moins que tous les 3 qui s'est passé à l'échec. Changé pour OU et cela a fonctionné comme je le voulais.
OriginalL'auteur BeachBum
Assurez-vous que vous cliquez sur Modifier en fonction des Contraintes et de modifier la dernière partie pour de Multiples Contraintes OU de sorte que si l'un d'eux échoue d'exécuter la tâche, sinon il faudra attendre que tous d'entre eux à l'échec.
OriginalL'auteur Ken
Vérifier la séquence contenant de la propriété si FailPackageOnFailure=true, il ne sera pas le feu "échec de la contrainte de précédence".
OriginalL'auteur Indrajith
Sans plus de détails sur vos Conteneurs de Séquence, il est difficile d'être sûr du problème.
Je voudrais essayer de vérifier le
Propagate
système variable de vos conteneurs.Chaque fois que vous avez une tâche qui peut échouer et vous ne voulez pas votre paquet entier de s'arrêter, assurez-vous que vous effectuez l'une des opérations suivantes:
Event Handlers
et de faire quelque chose sur leOnError
événementtraiter l'échec ou
Propagate
Système Variable de la tâche àFalse
Je voudrais fournir quelques captures d'écran, mais je n'ai pas assez de rep. Au lieu de cela, je vous laisse avec quelques liens avec plus d'informations sur ce sujet:
Similaires à votre question: http://sqlserverselect.blogspot.com/2010/12/ssis-foreach-loop-container-continue-on.html
Des informations détaillées sur la propagation de l'évènement: http://simonworth.wordpress.com/2009/11/11/ssis-event-handler-variables-propagate/
Id dire que vous pouvez simplement définir le
propagate
variable système sur chacun des conteneurs de séquence "OnError" événements de false. Que doit faire votre séquence de conteneurs de rediriger le flux de travail à la tâche sql sans arrêt de l'ensemble du paquet.Juste si je comprends bien droit, vous êtes en train de dire à créer un événement OnError gestionnaire pour le conteneur de séquence, mais le laisser vide et l'ensemble de la propager sys var pour de faux? Ou n'a-t-il réellement besoin d'être au moins une tâche dans le gestionnaire d'événement?
Tant pis, j'ai répondu à ma propre question sur cette question. Merci pour l'aide, cependant.
OriginalL'auteur cfrag