| Termin | Definicja |
|---|---|
| Integracja z SQL Agent | Integracja z SQL Agent umożliwia powiązanie zewnętrznych procesów z zaplanowanymi zadaniami serwera bazodanowego. Rola SQL Server Agent w automatyzacji zadańSQL Server Agent jest składnikiem środowiska Microsoft SQL Server przeznaczonym do wykonywania zaplanowanych operacji administracyjnych i przetwarzania zadań w tle. Zadanie, określane jako job, składa się z jednego lub wielu kroków. Każdy krok może uruchamiać polecenie Transact-SQL, procedurę składowaną, skrypt systemowy albo działanie obsługiwane przez jeden z podsystemów SQL Server Agent. W ten sposób proces zewnętrzny może zostać powiązany z momentem rozpoczęcia, zakończenia lub niepowodzenia określonego zadania. Integracja nie oznacza bezpośredniego połączenia dowolnej aplikacji z wewnętrznym mechanizmem harmonogramowania. Zewnętrzny proces może korzystać z udostępnionych procedur systemowych, interfejsu administracyjnego albo tabel i widoków systemowych, aby uruchomić zadanie, odczytać jego stan lub sprawdzić historię wykonania. Sam SQL Server Agent pozostaje komponentem odpowiedzialnym za harmonogram, kolejność kroków, obsługę błędów i rejestrowanie wyników. Powiązanie procesu z jobem, harmonogramem i wynikiemNajczęstszy model integracji polega na utworzeniu joba zawierającego jasno określone kroki oraz przypisaniu go do harmonogramu. Harmonogram może określać wykonanie jednorazowe, cykliczne albo uruchomienie w odpowiedzi na zdarzenie. Proces zewnętrzny może wywołać rozpoczęcie zadania za pomocą procedury Stan bieżącego wykonania można analizować między innymi przez procedurę Bezpieczeństwo wykonania i przekazywanie informacjiSQL Server Agent wykonuje kroki z uprawnieniami zależnymi od typu kroku, właściciela joba, konta usługi oraz ewentualnie skonfigurowanego konta proxy. Ma to szczególne znaczenie dla kroków uruchamiających polecenia systemowe lub skrypty, ponieważ uprawnienia do bazy danych nie są automatycznie równoważne uprawnieniom systemu operacyjnego. Konfiguracja powinna ograniczać zakres uprawnień do czynności wymaganych przez dany job. W przeciwnym razie zewnętrzny proces, który może uruchamiać zadania, może uzyskać możliwość wykonania operacji wykraczających poza pierwotny cel integracji. SQL Server Agent obsługuje również alerty, operatorów i tokeny używane w komunikatach lub akcjach reagujących na zdarzenia. Token nie jest uniwersalnym mechanizmem wymiany dowolnych danych między aplikacją a jobem. Jeżeli proces zewnętrzny musi przekazać parametry, bezpieczniejszym wzorcem jest zapisanie ich w kontrolowanej tabeli, użycie procedury składowanej z walidacją albo przekazanie wartości przez przewidziany dla danego kroku mechanizm. Należy unikać składania poleceń z niezweryfikowanych fragmentów tekstu, ponieważ może to prowadzić do niezamierzonego wykonania instrukcji Transact-SQL lub poleceń systemowych. Diagnostyka integracji i interpretacja historiiAnaliza problemu powinna rozpocząć się od ustalenia, czy zewnętrzny proces rzeczywiście wywołał właściwy job, czy job był już uruchomiony oraz czy wskazany harmonogram jest aktywny. Następnie należy sprawdzić historię joba, komunikaty poszczególnych kroków i kolejność przejść po błędzie. Sam komunikat o pomyślnym przyjęciu żądania uruchomienia nie potwierdza poprawnego wykonania zadania. Również brak nowego wpisu w historii może wynikać z błędnego identyfikatora, niewystarczających uprawnień, wyłączonego agenta albo opóźnienia w zapisaniu informacji. Przy diagnostyce warto porównać czas wywołania procesu z czasem rozpoczęcia i zakończenia joba, zweryfikować kod zakończenia każdego kroku oraz sprawdzić, czy job nie został zatrzymany przez konflikt z innym wykonaniem. Jeżeli integracja wykorzystuje alerty, należy dodatkowo sprawdzić warunek wyzwalający, powiązanie alertu z jobem oraz konfigurację operatora. Problemy mogą wynikać także z różnicy kontekstu użytkownika, ścieżek dostępnych dla konta usługi lub zależności od obiektów znajdujących się w bazie |