| Termin | Definicja |
|---|---|
| Błędy integracji SSIS | Błędy integracji SSIS to usterki dotyczące wykonania pakietów usług integracyjnych SQL Server Integration Services. Zakres błędów w pakietach SQL Server Integration ServicesBłędy integracji SSIS dotyczą nieprawidłowego wykonania pakietów SQL Server Integration Services, czyli przepływów zadań służących do pobierania, przekształcania i zapisywania danych. Pakiet może zawierać zadania sterujące, przepływy danych, menedżery połączeń, zmienne, parametry oraz ograniczenia kolejności wykonywania. Usterka może wystąpić podczas ładowania pakietu, nawiązywania połączenia, odczytu danych, konwersji typów, zapisu wyników albo końcowej obsługi błędu. Sam komunikat o błędzie nie zawsze wskazuje bezpośrednią przyczynę. SSIS przekazuje informacje między elementami pakietu za pomocą kodów błędów, komunikatów komponentów i właściwości takich jak HResult, ErrorCode oraz ErrorColumn. W przepływie danych jeden błąd może zatrzymać cały komponent, skierować rekord do ścieżki błędów albo zostać obsłużony zgodnie z konfiguracją zadania. Dlatego interpretacja wymaga sprawdzenia zarówno treści komunikatu, jak i miejsca wystąpienia problemu w pakiecie. Połączenia, uprawnienia i środowisko uruchomienioweCzęstą przyczyną nieudanego wykonania jest brak prawidłowego połączenia z używanym źródłem lub miejscem docelowym danych. Menedżer połączeń SSIS przechowuje między innymi typ dostawcy, nazwę serwera, nazwę bazy, sposób uwierzytelniania oraz dodatkowe parametry. Pakiet otwierany w środowisku projektowym może korzystać z innych wartości niż pakiet uruchamiany przez SQL Server Agent, usługę systemową lub narzędzie wiersza poleceń. Znaczenie ma również konto, pod którym działa proces wykonujący pakiet. Problem może wynikać z wygasłego hasła, niedostępnej instancji SQL Server, błędnej nazwy bazy, braku uprawnień do obiektu albo niezgodnego sterownika dostępu do danych. Należy odróżnić błąd uwierzytelniania od błędu transportowego i od błędu konfiguracji komponentu. W przypadku pakietów używających parametrów środowiskowych trzeba sprawdzić, czy właściwe wartości zostały przypisane do projektu lub środowiska SSIS Catalog. W przeciwnym razie pakiet może uruchomić się technicznie poprawnie, ale pobierać dane z niewłaściwego źródła. Przepływ danych, typy kolumn i obsługa rekordów błędnychKomponenty Data Flow przetwarzają dane w postaci kolumn o określonych typach, długościach, precyzji i skalach. Błąd pojawia się na przykład wtedy, gdy tekst nie może zostać przekonwertowany na liczbę, data ma nieobsługiwany format, wartość przekracza długość kolumny docelowej albo kolumna wymagająca wartości nie dopuszcza wartości pustej. Znaczenie może mieć także kodowanie znaków oraz różnica między typem Unicode i nie-Unicode. W SSIS typy takie jak DT_STR i DT_WSTR nie są równoważne, dlatego niejawna konwersja może zakończyć się ostrzeżeniem lub błędem. Diagnostyka powinna obejmować konkretne źródło kolumny, komponent wykonujący konwersję oraz regułę obsługi błędów ustawioną dla danego elementu. Dla wielu komponentów można zdecydować, czy błąd ma zakończyć zadanie, pominąć rekord, czy skierować rekord do ścieżki błędów. Przydatne są wtedy kolumny diagnostyczne zawierające kod błędu i opis błędu. Trzeba jednak sprawdzić, czy odrzucanie rekordów nie powoduje pozornego sukcesu pakietu, w którym zadanie kończy się bez wyjątku, lecz część danych nie trafia do miejsca docelowego. Weryfikacja pakietu i przywrócenie poprawnego wykonaniaPostępowanie naprawcze zaczyna się od odtworzenia błędu w tym samym trybie, w którym pakiet faktycznie działa. Należy porównać konfigurację projektu, parametry, wartości zmiennych, menedżery połączeń, wersję dostawcy oraz konto wykonawcze. Następnie warto prześledzić kolejność zadań wyznaczoną przez ograniczenia precedencji i sprawdzić, czy warunek przejścia odpowiada rzeczywistemu wynikowi poprzedniego zadania. Szczególnej uwagi wymagają wartości logiczne, kody zakończenia oraz zmienne ustawiane w czasie wykonywania. W pakietach publikowanych w SSIS Catalog pomocne są raporty wykonywania i poziomy rejestrowania zdarzeń, ponieważ pozwalają ustalić, czy błąd nastąpił przed uruchomieniem przepływu danych, w konkretnym komponencie, czy dopiero przy zatwierdzaniu transakcji. Nie należy usuwać komunikatu bez usunięcia przyczyny ani zmieniać obsługi błędów na ignorowanie bez oceny skutków dla kompletności danych. Po zmianie konfiguracji trzeba ponownie uruchomić pakiet na reprezentatywnym zbiorze danych i potwierdzić liczbę odczytanych, przekształconych, odrzuconych oraz zapisanych rekordów. |