Jak kontynuować po awarii w SSIS

12

Chcę zaimplementować coś takiego: wprowadź opis zdjęcia tutaj

W tym pakiecie chcę przeglądać listę nazw baz danych, dynamicznie modyfikując ustawienia menedżera połączeń.

Jednak pierwsza awaria „Testuj połączenie” zatrzyma i zakończy się niepowodzeniem wykonania pakietu.

Ale chciałbym kontynuować moją pętlę Foreach. Mam wrażenie, że powinno to być możliwe (w przeciwnym razie jaki jest przypadek użycia tych czerwonych strzałek awarii?)

Do rzeczy, które próbowałem, należą bałagan z „MaximumErrorCount”.

Michael J Swart
źródło

Odpowiedzi:

12

Aby odpowiedzieć na pytanie, które zadałem, po awarii można kontynuować, upewniając się, że MaximumErrorCount wynosi zero dla zadania i jego kontenerów nadrzędnych ... W tym przypadku oznacza to zadanie „Testuj połączenie”, kontener „foreach” i samą paczkę.

Skończyło się jednak na zrobieniu czegoś innego. I pomocna była tutaj weryfikacja połączenia Jamiego Thomsona przed użyciem . Oto co zrobiłem:

Zadanie Testuj połączenie zastąpiłem zadaniem skryptowym. Zadanie skryptowe było prawie dokładnie takie same jak skrypt Jamiego, tyle że ja

  • użyłem tylko jednego menedżera połączeń, nie wszystkich,
  • wynik zadania zawsze był sukcesem
  • i ustawiłem nową zmienną „User :: ConnectionSucceeded” na wynik testu połączenia.

Zmieniłem również strzałki wychodzące z zadania połączenia testowego, aby ocenić wyrażenia:

  • @ [User :: ConnectionSucceed] == Prawda
  • @ [User :: ConnectionSucceed] == False

odpowiednio.

Musiałem także pamiętać o edycji wielu ograniczeń związanych z zadaniem „Aktualizuj LastMonitored”. Zmieniłem je, aby używały logicznego „LUB”.

Oto jak teraz wygląda mój pakiet SSIS: nowy pakiet

Michael J Swart
źródło
1

Łatwa droga...

Kliknij dwukrotnie ograniczenie pierwszeństwa (zielona linia) po zadaniu „Testuj połączenie”. Powinieneś zobaczyć „Opcje ograniczeń”, kliknąć rozwijaną listę „Wartość” i wybrać „Uzupełnienie”. Dzięki temu Twój pakiet będzie kontynuował działanie po zakończeniu zadania, niezależnie od tego, czy zakończy się niepowodzeniem.

Uwaga: Nie zmieniaj rozwijanej listy „Operacja oceny” z „Ograniczenia”, chyba że chcesz dodać wyrażenie do oceny po zakończeniu zadania. Zachowaj również ograniczenie na „Logiczne AND”.

Mam nadzieję że to pomoże.

Korzystanie z ograniczenia pierwszeństwa

Eneyo
źródło
Celowo ustalono ograniczenie pierwszeństwa na „Sukces”. Poza tym zmiana na „Ukończenie” nie rozwiązuje zadanego pytania ani zadania, z którym się zmagałam. Jeśli „Test połączenia” nie powiedzie się, nadal wstrzymuje wykonanie pakietu.
Michael J Swart,
Tak wiele stron przeczytało, by w końcu znaleźć tę odpowiedź! Dzięki!
alexkovelsky