2011-04-24 14 views
7

Pracuję nad pakietem SQL 2008 - SSIS. Wykonuję pakiet z kodu C#. Jest to prosty plik płaski (.csv) do tabeli SQL.Jak utworzyć dziennik błędów lub niestandardowy dziennik błędów w pakiecie SSIS?

Z kodu C# otrzymuję wynik wykonania jako SUCCESS, ale wewnątrz transakcji nie zostały podjęte Transakcje, więc wartości nie są faktycznie eksportowane.

Potrzebuję do debugowania, czytając plik dziennika.

Jak utworzyć rejestr błędów lub plik dziennika wewnątrz paczki?

Odpowiedz

2

Rejestrowanie błędów w SSIS jest bardzo łatwe. Przejdź do zakładki Obsługa zdarzeń, wybierz rozwijaną listę OnError. Teraz możesz wysłać wiadomość e-mail z dowolnym błędem lub rozwinąć własną logikę, aby zalogować błąd do DB lub napisać do pliku tekstowego.

Istnieje również możliwość wyboru istniejącego mechanizmu rejestrowania dostępnego w SSIS. Kliknij menu "SSIS", zobaczysz pierwszą opcję jako Logging, zobaczysz różne opcje logowania błędów/ostrzeżeń i mnóstwo potrzebnych informacji.

20

Oto jeden ze sposobów konfiguracji funkcji rejestrowania w SSIS. W tym przykładzie zadanie Wyślij pocztę skonfigurowane do niepowodzenia i włączono rejestrowanie oparte na serwerze SQL, które będzie przechowywać komunikaty o błędach podczas przechowywania pakietu. Są też inne wydarzenia, które mogą Cię zainteresować. W projektach, w których pracowałem, te dwa zadania pomogły mi zidentyfikować większość problemów występujących w pakietach SSIS.

krok po kroku procesu:

  1. SSIS opakowanie w tym przykładzie zawiera zadanie wysłania wiadomości skonfigurowany jak pokazano na kszenie . Jest skonfigurowany do błędu, więc możemy zobaczyć niektóre komunikaty o błędach w tabeli dziennika.
  2. Kliknij na pakiet SSIS.
  3. W menu wybierz SSIS -> Rejestrowanie ... Zobacz zrzut ekranu # .
  4. W oknie dialogowym Konfiguruj dzienniki SSIS: wybierz typ dostawcy i kliknij Dodaj. Wybrałem SQL Server dla tego przykładu. Zaznacz pole wyboru Name i podaj źródło danych pod kolumną Configuration. Tutaj SQLServer to nazwa menedżera połączeń. SSIS utworzy tabelę o nazwie dbo.sysssislog i procedurę przechowywaną dbo.sp_ssis_addlogentry w wybranej bazie danych. Zobacz zrzut ekranu # poniżej.
  5. Jeśli chcesz uchwycić błędy, zaznacz pole wyboru: OnError i OnTaskFailed. Zobacz zrzut ekranu # poniżej.
  6. Przykładowe wykonanie pakietu w ramach zadania przepływu danych jest pokazane na rysunku # poniżej.
  7. Przykładowe wyjście tabeli dziennika dbo.sysssislog pokazano na zrzucie ekranu # poniżej. Pokazałem tylko kilka kolumn: id, event, i message. W tabeli znajdują się inne kolumny. Kolumna wiadomości zawiera komunikat o błędzie, tutaj w tym przypadku nazwa serwera wymieniona w zadaniu Wyślij pocztę jest niepoprawna.Kolumna źródłowa zawiera zadanie, w którym się nie udało. W tym przypadku nazwa pakietu to SSISLoggingEprzypadku, a zadanie Wyślij pocztę nosi nazwę Poczta e-mail dla zadania. Komunikaty o błędach będą pojawiać się od zadania do poziomu pakietu. Dlatego komunikat o błędzie jest rejestrowany dwukrotnie w ramach zadania, jak również na poziomie pakietu.

Nadzieję, że pomaga.

ekranu 1:

1

ekranu 2:

2

ekranu 3:

3

ekranu 4:

4

ekranu 5:

5

ekranu 6:

6

Powiązane problemy