Czyli debugowanie programów wsadowych ILE RPG
O ile proces wyłapywania błędów kontrolując wykonanie programu interaktywnego nie przysparza problemów, to w przypadku programu wsadowego operacja jest znacznie bardziej skomplikowana. Jak przygotować i uruchomić debugowanie programu wsadowego ? Oto instrukcja jak wykonać to krok po kroku:
- przygotuj źródło programu kompilując go z następującymi parametrami DBGVIEW (*SOURCE) OPTION(*SRCSTMT:*NODEBUGIO)
- zatrzymaj kolejkę zadań do której zostanie skierowany program wsadowy po uruchomieniu
- wystartuj zadanie wsadowe
- zatrzymaj zadanie (status HOLD), które dzięki wstrzymanej kolejce nie wykonuje się
- zwolnij zatrzymaną kolejkę zadań
- uruchom „serwisowanie” uruchomionego zadania za pomocÄ… komendy STRSRVJOB JOB(numer_zadania/użytkownik/nazwa_zadania) gdzie parametry komendy pochodzÄ… z uruchomionego zadania wsadowego
- uruchom debugger komendÄ… STRDBG PGM(biblioteka/program) UPDPROD(*YES)
- zostaniesz przeniesiony na ekran wyświetlający źródło programu, lecz nie próbuj jeszcze debugować czy dodawać punktów zatrzymania programu (breakpoints). By można było debugować, zadanie musi być aktywne. Wyjdź z ekranu za pomocą F12
- zwolnij zatrzymane zadanie wsadowe
- w momencie gdy zadanie stanie siÄ™ aktywne, pokaże siÄ™ okno startu zadania serwisowego. Użyj F10 by wprowadzać komendy debugera’a
- za pomocą komendy DSPMODSRC wróć do źródeł programu i dodaj punkty zatrzymania w programie (F6)
- użyj klawisza F12 by wznowić działanie programu i raz jeszcze F12 by wrócić do okienka komendy serwisowej
- ENTER spowoduje uruchomienie zadania i proces debugowania rozpocznie siÄ™ podobnie jak ma to miejsce w zadaniach interaktywnych
- w momencie zakoÅ„czenia zadania otrzymasz komunikat „Job being serviced ended”
- użyj komendy ENDDBG by zakończyć debugowanie i ENDSRVJOB by zakończyć serwisowanie
Proces wydaje się być zagmatwany lecz kilkukrotne jego przejście powoduje, że wykonywanie poszczególnych czynności staje się logiczne i jasne.