Wysyłanie powiadomień w SQL Server – cz. III (powiadomienia ręczne z wykorzystaniem SQL Server Agent)

W poprzednich dwóch postach pokazywałem jako skonfigurować Database Mail i jak skorzystać z procedury składowanej msdb.dbo.sp_send_dbmail. Jak jednak wykorzystać praktycznie zdobytą wiedzę?

W przypadku zadań SQL Server Agenta definiuje się kroki i akcję, która ma zajść po ukończeniu danego kroku w przypadku powodzenia i braku powodzenia. Spróbujmy sobie wyobrazić zatem zadanie, w którym głównym krokiem jest Krok 1 i jest to np. wykonanie pakietu SSIS. Krok 2 to wysyłka e-maila w przypadku braku powodzenia Kroku 1. Wyobraźmy sobie zatem następujący ciąg przyczynowo skutkowy:

    1. W celu utworzenia nowego zadania SQL Server Agent należy kliknąć PPM na węźle Jobs i wybrać opcję New Job.
    2. Należy nadać nazwę Zadanie.
    3. Należy przejść do zakładki Steps, wybrać przycisk New…
    4. Należy wpisać nazwę kroku Krok 1 i wybrać typ SQL Server Integration Services Package. Należy wpisać w pole Server: localhost. Uwaga! Brak wpisania ścieżku do pakietu SSIS jest specjalnie przygotowanym błędem.
  1. Na zakładce Advanced należy wybrać z listy rozwijanej On success action: Quit the job reporting success. Natomiast dla listy rozwijanej On failure action: Go to the next step.
  1. Zaakceptowanie edycji kroku joba wyświetli komunikat ostrzegający o braku wyboru pakietu SSIS do wykonania:
  1. Należy utworzyć Krok 2. Należy wybrać przycisk New…, wpisać nazwę kroku Krok 2 i wybrać typ Transact-SQL script (T-SQL). W polu Command: należy wpisać następujące zapytanie wysyłające e-maila:

  1. Odwzorowanie wcześniejszego schematu wygląda zatem następująco:

Z uwagi na fakt, że w Kroku 1 joba Zadanie nie został podany żaden pakiet SSIS wystąpi błąd w Kroku 1. Nastąpi zatem przejście do Kroku 2 joba Zadanie, czyli wysłanie e-maila o wystąpieniu błędu. W celu przetestowania te sytuacji należy kliknąć PPM na job Zadanie i wybrać opcję Start Job at Step… Następnie należy wybrać Krok 1 i kliknąć przycisk Start. Zgodnie z przewidywaniami wykonanie joba zakończy się błędem:

A na podany adres e-mailowy w parametrze procedury msdb.dbo.sp_send_dbmail zostanie wysłana wiadomość. Poznany mechanizm pozwala na tworzenie złożonej logiki.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *