Wprowadzenie
Podczas działania serwera aplikacji tworzone są rejestry, które można przeglądać w celu monitorowania i analizowania wyników. Rejestry komunikatów odpowiadają za przechowywanie komunikatów aplikacji i systemu.
Komunikaty aplikacji
Każda aplikacja ma możliwość wysyłania komunikatów. W przypadku aplikacji dialogowych są to zazwyczaj informacje, ostrzeżenia lub błędy, które dokumentują przepływ kontroli i są interaktywnie wyświetlane użytkownikowi. Gdy wiadomość jest wysyłana, określane jest miejsce docelowe wiadomości. Możliwe miejsca docelowe to:
- bieżąca aplikacja (PROGRAM)
- środowisko, z którego aplikacja została uruchomiona (PREVIOUS)
- dziennik aplikacji (JOBLOG)
- dziennik systemowy (SYSLOG)
Komunikaty wysyłane do samej aplikacji są tymczasowo przechowywane w specjalnej strukturze danych aplikacji – kolejce komunikatów – i zwykle pozostają tam do następnej interakcji użytkownika.
Ponadto każda aplikacja może zapisywać komunikaty do rejestru komunikatów aplikacji w przypadku specjalnych zdarzeń lub statusów. Jest to szczególnie istotne w przypadku aplikacji działających w tle, których wykonanie powinno być możliwe do zweryfikowania. Komunikaty te są przechowywane w bazie danych OLTP z odniesieniem do odpowiedniej aplikacji i mogą być wyszukiwane za pośrednictwem aplikacji rejestr komunikatów.
Komunikaty systemowe
Szczególnie ważne komunikaty aplikacji, takie jak wyjątek oraz zdarzenia systemowe o szczególnym znaczeniu, takie jak uruchomienie usługi lub logowanie użytkownika, są zapisywane w rejestrze komunikatów bazy danych repozytorium. Ten rejestr komunikatów stanowi podstawę do diagnostyki systemu i, w razie potrzeby, diagnostyki błędów.
Poniższy schemat przedstawia konteksty, w których komunikaty są tworzone i zapisywane:
Trace
Aby precyzyjnie zlokalizować źródło komunikatu w programie, wpisy w rejestrze komunikatów mogą zawierać ślady stosu Java (Java-Stacktraces) lokalizacji, która wygenerowała komunikat. Jest to zawsze wykonywane automatycznie w przypadku poważnych błędów np. wyjątków. Szczególną cechą śladów (trace) w systemie jest to, że oprócz rzeczywistej hierarchii wywołań, numer wersji odpowiednich obiektów deweloperskich jest dołączony do każdej klasy Java. Umożliwia to na przykład bezpośrednie rozpoznanie, czy jest to klasa dostosowana, czy nie.
Podczas analizy błędów przydatna jest również możliwość wymuszenia rejestrowania wszystkich komunikatów występujących na serwerze aplikacji, niezależnie od ich wagi. Istnieje również opcja rejestrowania śladu stosu Java odpowiedniego punktu wywołania, dlatego rejestry komunikatów są również interesujące dla programistów aplikacji. W aplikacji Rejestry komunikatów dostępne są specjalne funkcje filtrowania do diagnozowania błędów, które na przykład wyświetlają wszystkie wystąpienia tego samego komunikatu lub wszystkie komunikaty dla sesji. Ułatwia to ustalenie, czy błąd jest błędem następczym, którego przyczyna sięga wstecz.
Grupa docelowa
- użytkownicy
- administratorzy systemu
- deweloperzy aplikacji
Opis aplikacji
Aplikacja Rejestr komunikatów umożliwia wyszukiwanie komunikatów, które zostały zapisane w rejestrze komunikatów. Można uzyskać szczegółowe informacje na temat komunikatów, a także zreorganizować rejestry komunikatów, czyli usunąć niepotrzebne komunikaty.
Aplikacja składa się z nagłówka oraz obszaru roboczego. W nagłówku możliwe jest wprowadzenie kryteriów wyszukiwania, natomiast w obszarze roboczym prezentowane są wyniki.
W aplikacji dostępnych jest kilka rejestrów komunikatów. Aby wybrać odpowiedni rejestr, do przeszukania należy wybrać odpowiedni widok:
- protokół systemowy
- protokół repozytorium
- protokół OLTP dla każdej bazy danych OLTP
Nagłówek
W nagłówku dostępne są następujące kryteria wyszukiwania:
Użytkownik – użytkownik, którego wiadomości mają zostać wyszukane. Aby wyszukać wpisy dla kilku użytkowników należy użyć przecinka i spacji. Wartością domyślną jest zalogowany użytkownik.
Pole podlega edycji tylko wtedy, gdy użytkownik posiada uprawnienia do wyświetlania wpisów rejestru komunikatów innych użytkowników.
Czas utworzenia – przedział czasowy pozwoli na ograniczenie wyszukiwania do komunikatów, które zostały utworzone w danym okresie. Domyślnie pole jest puste, co oznacza, że okres czasu nie został ograniczony.
Klasa komunikatu – klasa komunikatu pozwoli na ograniczenie wyszukiwania do komunikatów należących do określonej klasy. Można wprowadzić kilka klas, oddzielając je przecinkami i spacjami.
Numer komunikatu – numer komunikatu pozwoli na ograniczenie wyszukiwania do wiadomości o podanym numerze. Można wprowadzić kilka numerów, oddzielając je przecinkami i spacjami.
Typ komunikatu – typ komunikatu pozwoli na ograniczenie wyszukiwania do wiadomości określonego typu. Wartością domyślną są wszystkie typy.
Serwer aplikacji – serwer aplikacji pozwoli na ograniczenie wyszukiwania do komunikatów utworzonych na określonym serwerze aplikacji.
Aplikacja główna – aplikacja pozwoli na ograniczenie wyszukiwania do komunikatów utworzonych w danej aplikacji lub w wywołanej przez nią aplikacji działającej w tle.
Aplikacja w tle – aplikacja w tle pozwoli na ograniczenie wyszukiwania do komunikatów utworzonych w określonej aplikacji działającej w tle.
Typ śledzenia (tracetyp) – dla każdego wpisu w rejestrze komunikatów można zapisać trace miejsca w programie, które ten wpis wygenerowało. W przypadku komunikatu typu Poważny błąd, trace zapisywany jest automatycznie. Typem śledzenia (tracetyp) dla takich wpisów jest Z Exception-Trace.
Do celów diagnostycznych można również wymusić, aby wszystkie komunikaty były zapisywane razem ze śladem, używając np. polecenia toolshell dbgmsgmgr. Takie wpisy będą mieć typ śledzenia (tracetyp): Z Stack-Trace.
W tym polu możesz wybrać typy trace’ów jako kryterium wyszukiwania – w ten sposób ograniczasz wyszukiwanie tylko do komunikatów zawierających wskazane typy trace’ów.
Wartość domyślna: wszystkie typy trace’ów.
Trace – trace pozwoli na ograniczenie wyszukiwania do komunikatów, które zawierają określony tekst w swoim trace. Można wprowadzić kilka klas, oddzielając je przecinkami i spacjami. Aby wyszukać trace zawierający określone słowo lub ciąg znaków, należy użyć symboli wieloznacznych (*) przed i po słowie.
Obszar roboczy
W obszarze roboczym aplikacja wyświetla komunikaty zgodne ze zdefiniowanymi w nagłówku aplikacji. Wiadomości są wyświetlane w porządku chronologicznym, przy czym najnowsze wiadomości są wyświetlane jako pierwsze. Nad listą znajduje się pasek narzędzi z następującymi przyciskami:
[Wyświetl właściwości wpisu rejestru komunikatów] – wybranie przycisku otworzy okno dialogowe ze szczegółami wybranego wpisu z możliwością skopiowania danych.
[Środowisko] – wybranie przycisku spowoduje wyświetlanie dodatkowego wiersza na liście z informacjami o środowisku, na którym wpis został utworzony.
[Powiązane wpisy] – wybranie przycisku spowoduje wyświetlenie wszystkich wpisów z sesji, do której należy wybrany wpis. Rozpocznie się nowe wyszukiwanie, a kryteria wyszukiwania z nagłówka nie są brane pod uwagę.
[Identyczne wpisy] – wybranie przycisku spowoduje wyświetlenie wszystkich wiadomości o tej samej klasie i numerze co wybrany komunikat. Rozpocznie się nowe wyszukiwanie, a kryteria wyszukiwania z nagłówka nie są brane pod uwagę.
[Zlecenie przetwarzania] – wybranie przycisku spowoduje otwarcie aplikacji Zlecenia przetwarzania. Pod warunkiem, ze wybrany wpis został utworzony za pomocą zlecenia przetwarzania. W przeciwnym razie pojawi się odpowiedni komunikat.
Lista składa się z następujących kolumn:
Typ komunikatu – symbol reprezentujący typ komunikatu (informacja, ostrzeżenie, błąd, itp).
Krótki tekst komunikatu – sformatowany tekst komunikatu zawierający wartości parametrów.
Czas utworzenia – czas utworzenia wpisu.
Aplikacja główna – aplikacja, która była aktywna w momencie utworzenia wpisu.
Przycisk [Środowisko] na pasku narzędzi nad listą wyświetla dodatkowe informacje dla każdego wpisu na liście. Dostępne są następujące kolumny:
Użytkownik – użytkownik, który był zalogowany w momencie utworzenia wpisu.
Baza danych – baza danych OLTP, do której użytkownik był zalogowany w momencie utworzenia wpisu.
Serwer aplikacji – serwer aplikacji, na którym utworzono wpis.
Aplikacja działająca w tle – aplikacja działająca w tle, która była aktywna w momencie utworzenia wpisu.
Okno dialogowe Właściwości wpisu do rejestru komunikatów
Właściwości komunikatu są wyświetlane na kilku zakładkach w tym oknie dialogowym.
Zakładka Komunikat
Typ komunikatu – zawiera informacja o kategorii/ważności komunikatu.
- Linia statusu – wyświetlanie stanu w wierszu. Brak wpływu na dalsze działanie w aplikacji.
- Informacja – wyświetlany na pasku stanu i na zakładce Komunikaty w obszarze nawigacji. Nie ma wpływu na działanie w aplikacji.
- Ostrzeżenie – wyświetlany na pasku stanu i na zakładce Komunikaty w obszarze nawigacji. Po potwierdzeniu ostrzeżenia przez użytkownika akcja może zostać wykonana.
- Błąd (opcja domyślna) – wyświetlany na pasku stanu i na zakładce Komunikaty w obszarze nawigacji. Akcja nie może zostać wykonana, dopóki błąd nie zostanie usunięty.
Komunikat – klasa i numer komunikatu.
Krótki tekst komunikatu – tekst komunikatu wyświetlany na pasku stanu i na zakładce Komunikaty.
Rozwinięty tekst wiadomości – pełny tekst komunikatu.
Zakładka Środowisko
Dostępne pola:
Czas utworzenia – czas wygenerowania komunikatu
Użytkownik – użytkownik, dla którego komunikat został wygenerowany.
Serwer aplikacji – serwer aplikacji, na którym komunikat został wygenerowany.
Baza danych – baza danych OLTP, do której użytkownik był zalogowany w momencie wygenerowania komunikatu. W przypadku niektórych komunikatów nie określono bazy danych z przyczyn technicznych.
Aplikacja główna – komunikat został wygenerowany przez tę aplikację lub aplikację przez nią wywołaną.
Jednostka biznesowa – reprezentacja jednostki biznesowej w postaci łańcucha znaków, który został ustawiony podczas wysyłania komunikatu. To pole jest widoczne tylko wtedy, gdy nie można określić bazy danych. Na przykład, jeśli wpis rejestru został wygenerowany dla komunikatu, który został przesłany do systemu poprzez serializację. Pole jest również widoczne, jeśli podczas wysyłania komunikatu nie ustawiono żadnej jednostki biznesowej. W takim przypadku pole jest puste.
Instancja jednostki biznesowej – instancja jednostki biznesowej , która została ustawiona podczas wysyłania komunikatu. Pole jest dostępne tylko wtedy, gdy można określić bazę danych, do której był zalogowany użytkownik, gdy wiadomość została wygenerowana.
Dependent – zależne od jednostki biznesowej, która została ustawiona w momencie wysłania komunikatu. Pole jest zawsze widoczne; jeśli nie ustawiono opcji Dependent, pole jest puste.
Uprawnienia
Uprawnienia mogą być nadawane za pomocą ról uprawnień lub przypisania do organizacji. Szczegółowe informacje znajdują się w artykule Uprawnienia.
Poniższe specjalne uprawnienia i możliwości są istotne dla tej aplikacji. Bez ich przyznania użytkownik może jedynie wyświetlać lub usuwać własne komunikaty.
Nadanie uprawnień odbywa się w aplikacji Role uprawnień -> zakładka Aplikacje i raporty -> podzakładka Obszary -> rozwinąć opcje dostępne pod przyciskiem [Dodaj nowy wpis] -> opcja Pozostałe -> w polu Nazwa prawa dostępu należy wpisać odpowiednio:
- Wyświetl komunikaty innych użytkowników – uprawnienie to umożliwia przeglądanie komunikatów własnych i innych użytkowników. Techniczna nazwa tego prawa dostępu to: com.cisag.sys.kernel.messagelog.DisplayOtherUsersEntries.
- Usuń komunikaty – uprawnienie pozwala na usuwanie własnych komunikatów. Techniczna nazwa tego prawa dostępu to: com.cisag.sys.kernel.messagelog.DeleteEntries
- Usuń komunikaty innych użytkowników – uprawnienie umożliwia usuwanie komunikatów własnych i innych użytkowników. Techniczna nazwa tej funkcji to: com.cisag.sys.kernel.messagelog.DeleteOtherUsersEntries
Instrukcje
W poniższych podrozdziałach opisano w jaki sposób:
- wykonać reorganizację starych wpisów
- wyświetlić własne wpisy
- wyświetlić szczegółowe informacje o wpisach
- skopiować wpis do schowka
- wymusić zapisywanie wszystkich komunikatów z serwera aplikacji w rejestrze komunikatów.
Wyświetlanie własnych wpisów
- Otworzyć aplikację Rejestr komunikatów.
- Jeśli jest to wymagane można wprowadzić dodatkowe kryteria wyszukiwania
- Wybrać przycisk [Aktualizuj] na standardowym pasku narzędzi
- W aplikacji zostaną wyświetlone komunikaty zalogowanego operatora.
Wyświetlanie szczegółowych informacji o wpisach
- Otworzyć aplikację Rejestr komunikatów
- Jeśli jest to wymagane można wprowadzić dodatkowe kryteria wyszukiwania
- Wybrać przycisk [Aktualizuj] na standardowym pasku narzędzi
- W aplikacji zostaną wyświetlone komunikaty zalogowanego operatora
- Wybrać przycisk [Środowisko]
- Wyświetlone zostają szczegółowe informacje na temat wpisów.
lub:
7. Zaznaczyć wpis na liście
8.Wybrać przycisk [Wyświetl właściwości wpisów rejestru komunikatów]
9.Szczegółowe informacje na temat wybranego komunikatu zostaną wyświetlone w osobnym oknie dialogowym.
Kopiowanie wpisu do schowka
- Otworzyć aplikację Rejestr komunikatów.
- Jeśli jest to wymagane można wprowadzić dodatkowe kryteria wyszukiwania
- Wybrać przycisk [Aktualizuj] na standardowym pasku narzędzi
- W aplikacji zostaną wyświetlone komunikaty zalogowanego operatora
- Zaznaczyć wpis na liście
- Wybrać przycisk [Wyświetl właściwości wpisów rejestru komunikatów]
- Szczegółowe informacje na temat wybranego komunikatu zostaną wyświetlone w osobnym oknie dialogowym.
- Wybrać przycisk [Kopiuj] dostępny w oknie dialogowym.
- Dane wpisu zostały skopiowane do schowka jako tekst.
Wymuszanie zapisywania wszystkich komunikatów z serwera aplikacji w rejestrze komunikatów
Wymagania wstępne
Użytkownik jest zalogowany do toolshell serwera aplikacji.
Instrukcje:
- Wykonać polecenie dbgmsmgr -logLevel:0 -traceLevel:0
- Wszystkie pojawiające się komunikaty są zapisywane jako wpisy w odpowiednim rejestrze komunikatów, niezależnie od jego typu. Dodatkowo protokołowany jest także trace miejsca wywołania
- Zalogować się do systemu i wykonać akcję, której komunikaty mają zostać przeanalizowane.
- Otworzyć aplikację Rejestr komunikatów.
- Wykonać polecenie dbgmsmgr -logLevel:25 -traceLevel:25, aby przełączyć rejestrowanie z powrotem do standardowego zachowania.