Wprowadzenie
W artykule przedstawiono funkcjonalności dostępne w Comarch ERP Enterprise w zakresie pozyskiwania i analizy informacji o wydajności systemu ERP. Rejestrując operacje wykonywane przez serwer aplikacji systemu ERP (SAS) z odpowiednimi informacjami kontekstowymi, nawet w dłuższym okresie czasu, można analizować określone wąskie gardła w wydajności i przeprowadzać analizy trendów zachowania systemu w systemach produkcyjnych.
Grupa docelowa
- Administratorzy
- Konsultanci techniczni
- Programiści
Definicja pojęć
Zdarzenie monitorowania – to wykonanie operacji na serwerze aplikacji. Operacja jest zawsze wykonywana w kontekście opisanym przez informacje kontekstowe. Zdarzenie monitorowania zawiera informacje o kontekście wykonania, a także czas wykonania.
Monitor wydajności – aktywny monitor wydajności rejestruje informacje o wydajności podczas działania serwera aplikacji. Informacje o wydajności zawierają dane o tym, jak często wystąpiły zarejestrowane zdarzenia monitorowania i w jakim czasie wykonania. Monitor wydajności ma kilka stanów, które są uruchamiane jeden po drugim: Przygotowany, Zaplanowany, Aktywny, Zakończony. Informacje o wydajności są rejestrowane tylko w stanie Aktywny. Każdy monitor wydajności jest oparty na szablonie, który definiuje, które zdarzenia monitorowania są rejestrowane przez monitor wydajności od którego czasu wykonania.
Monitor wydajności bazy danych – rejestruje informacje o wydajności w Business Objects w bazie danych repozytorium. Informacje o wydajności są podsumowywane w bazie danych za pomocą informacji kontekstowych. Monitor wydajności bazy danych jest szczególnie skuteczny w rejestrowaniu zdarzeń monitorowania, które często występują z identycznymi informacjami kontekstowymi. Im bardziej różne są informacje kontekstowe zarejestrowanych zdarzeń, tym większa jest ilość zarejestrowanych danych. Informacje o wydajności przechowywane w bazie danych można analizować za pomocą raportów lub aplikacji Panel System.
Informacje o wydajności – są rejestrowane przez aktywne monitory wydajności podczas działania serwera aplikacji. Informacje o wydajności zawierają informacje o tym, jak często wystąpiły określone zdarzenia monitorowania i w jakim czasie wykonywania. Monitory wydajności bazy danych rejestrują informacje o wydajności w Business Objects w bazie danych.
Zarządzanie monitorowaniem
Informacje o wydajności mogą być rejestrowane poprzez wykonywane operacje techniczne. Na podstawie tych danych można tworzyć oceny, które zapewniają wgląd w zachowanie systemu, nawet w dłuższym okresie czasu. Głównym celem jest wykrycie wąskich gardeł wydajności, aby można było podjąć określone działania optymalizacyjne.
Monitor wydajności bazy danych przechowuje informacje o wydajności w bazie danych repozytorium. Dane te można analizować za pomocą raportów dostępnych dla monitorów wydajności bazy danych lub za pomocą aplikacji Panel System.
Aktywacja monitorowania
Domyślny monitor bazy danych jest aktywny na każdym uruchomionym serwerze aplikacji. Nie jest wymagana dalsza aktywacja, aby rejestrować informacje o wydajności za pomocą monitora wydajności bazy danych.
Wyłączanie monitorowania
Narzędzie wrkmon może być użyte do dezaktywacji rejestrowania informacji o wydajności przez aktywne monitory wydajności bazy danych na uruchomionym serwerze aplikacji do następnego restartu.
Można użyć właściwości ERP com.cisag.sys.kernel.MonitoringMode=0, aby wyłączyć rejestrowanie informacji o wydajności dla wszystkich monitorów wydajności.
Monitory wydajności
Aby rejestrować informacje o wydajności, należy utworzyć monitor wydajności. Aplikacja Monitory wydajności służy do zarządzania monitorami wydajności. Jeśli monitor wydajności jest aktywny, rejestruje informacje o operacjach technicznych zgodnie z jego konfiguracją. Jeśli monitor wydajności nie został ograniczony do określonego serwera aplikacji, jest on aktywny na wszystkich serwerach aplikacji w systemie. Na serwer aplikacji mogą być aktywne maksymalnie 32 monitory wydajności.
Konfiguracja monitora wydajności
Konfiguracja monitora wydajności opiera się na wstępnie zdefiniowanym szablonie. Szablon definiuje, które z zdarzeń monitorowania są rejestrowane, w zależności od operacji i określonej wartości progowej w odniesieniu do czasu wykonania. Aplikacja może być również używana do dalszego ograniczania liczby zdarzeń monitorowania, które mają być rejestrowane. Możliwe jest zatem rejestrowanie zdarzeń monitorowania tylko dla określonego typu sesji, serwera aplikacji, aplikacji, raportu lub użytkownika.
Dostępny jest wybór szablonów do konfiguracji monitora wydajności, które opisano poniżej.
Monitor wydajności bazy danych do analizy czasów odpowiedzi
Szablon DatabaseMonitor-Default.xml można użyć do pomiaru czasu odpowiedzi systemu dla dostępu dialogowego, żądań wyjściowych, dostępu ODBC i żądań przetwarzania. Informacje o wydajności stanowią podstawę do wstępnej analizy czasów odpowiedzi. Standardowy monitor wydajności bazy danych korzysta z tego szablonu i jest aktywny w każdym systemie. Umożliwia to sprawdzenie odpowiedzi wszystkich serwerów aplikacji w dowolnym momencie.
Rejestrowane są następujące operacje:
- ROUNDTRIP_CLIENT
- ROUNDTRIP_GUI
- ROUNDTRIP_PERFORM_ACTION
- ROUNDTRIP_ODBC
- OUTPUT_JOB_EXECUTE
- ROUNDTRIP_PERFORM_ACTION_WAIT_TIME
- APPLICATION_ACTION_EXECUTE
Informacje o wydajności są rejestrowane z rozróżnieniem na następujące informacje kontekstowe:
- Serwer aplikacji
- Baza danych
- Typ sesji
- Typ aplikacji
- Działanie
- Raport
Dane są analizowane dla ostatnich 3 dni, 3 tygodni i 3 lat.
Monitor wydajności bazy danych do analizy dostępu do bazy danych
Szablonu DatabaseMonitor-DatabaseAnalysis.xml. pozwala na rejestrowanie wszystkich dostępów do bazy danych przez aplikacje lub raporty. Dzięki temu można dowiedzieć się, które aplikacje lub raporty wykonują szczególnie wiele lub kosztownych dostępów do bazy danych. Korzystanie z tego szablonu może mieć wpływ na serwer aplikacji. Zalecanym jest używanie tego monitora wydajności tylko w systemach deweloperskich lub testowych lub na serwerach aplikacji specjalnie skonfigurowanych do tego celu. Należy ograniczyć ten monitor wydajności do jednego serwera aplikacji lub jednego użytkownika.
Rejestrowane są następujące operacje:
Informacje o usłudze są rejestrowane z rozróżnieniem na następujące informacje kontekstowe:
- Serwer aplikacji
- Baza danych
- Typ sesji
- Typ aplikacji
- Zapytanie do bazy danych
- Raport
Analizowane są dane z ostatnich 3 dni, 2 tygodni i ostatniego roku.
Monitor wydajności bazy danych dla pełnej analizy
Szablon DatabaseMonitor-FullAnalysis.xml rejestruje wszystkie dostępne operacje, a tym samym generuje kompleksowe informacje o wydajności. Pozwala to na przeprowadzenie szczegółowej analizy zachowania odpowiedzi i dostępu do bazy danych aplikacji lub raportu. Użycie tego szablonu może znacząco wpłynąć na serwer aplikacji. Należy użyć tego monitora wydajności tylko w systemach deweloperskich lub testowych lub na serwerze aplikacji specjalnie skonfigurowanym do tego celu. Należy ograniczyć ten monitor wydajności do jednego serwera aplikacji lub jednego użytkownika.
Rejestrowane są następujące operacje:
- DB_CLOSE_CONNECTION
- DB_OPEN_CONNECTION
- DB_ACQUIRE_CONNECTION
- DB_STATEMENT_EXECUTE
- DB_TRANSACTION_COMMIT
- DB_TRANSACTION_ROLLBACK
- ROUNDTRIP_PERFORM_ACTION_WAIT_TIME
- ROUNDTRIP_PERFORM_ACTION
- ROUNDTRIP_GUI
- ROUNDTRIP_CLIENT
- ROUNDTRIP_ODBC
- CIS_OQL_SEARCH_STATEMENT_EXECUTE
- SESSION_DIALOG_CREATE
- OUTPUT_JOB_EXECUTE
- APPLICATION_ACTION_EXECUTE
- LOCK_ACQUIRE_WAIT
- LOCK_ACQUIRE_DIRECT
Informacje o wydajności są rejestrowane z rozróżnieniem na następujące informacje kontekstowe:
- Serwer aplikacji
- Baza danych
- Typ sesji
- Typ aplikacji
- Działanie
- Wyszukiwanie
- Zapytanie do bazy danych
- Raport
Dane są obliczane dla ostatnich 3 dni, 2 tygodni i ostatniego roku.
Rejestrowanie przez monitory wydajności bazy danych
Informacje o wydajności aktywnego monitora wydajności bazy danych zapisywane są w bazie danych repozytorium w obiekcie biznesowym com.cisag.sys.kernel.obj.MonitoringData. Dane są zapisywane przez każdy serwer aplikacji raz na godzinę dla najmniejszej zarejestrowanej jednostki czasu, która zwykle wyrażona jest w dniach. Zadanie przetwarzania Reorganizacja informacji o wydajności łączy zapisy z kilku serwerów aplikacji i przenosi je do większych jednostek czasu, takich jak tygodnie i lata. Nieaktualne informacje o wydajności są usuwane w zależności od wybranego szablonu.
Zalecanym jest zaplanowanie zadanie przetwarzania Reorganizacja informacji o wydajności codziennie.
Zarejestrowane informacje o wydajności
Monitory wydajności rejestrują informacje o wydajności dla określonych zdarzeń, które wystąpiły na serwerze aplikacji. Zdarzenia monitorowania, które mają być rejestrowane przez monitor wydajności, są zdefiniowane w jego konfiguracji. Informacje kontekstowe i czasy wykonania powiązane ze zdarzeniem monitorowania są przechowywane w bazie danych dla monitorów wydajności bazy danych.
Informacje o kontekście
Informacje kontekstowe opisują kontekst wykonania zdarzenia monitorowania.
Typ operacji
Typ operacji określa typ operacji wykonywanej przez serwer aplikacji. Poniżej wymieniono operacje, które mogą być rejestrowane jako zdarzenia monitorowania.
Otwarcie połączenia z bazą danych (DB_OPEN_CONNECTION)
Serwer aplikacji otwiera połączenie z bazą danych za pośrednictwem JDBC jest ono wymagane do zapisu danych do bazy danych lub ich odczytu z bazy. Otwarcie połączenia z bazą danych jest operacją kosztowną. Dlatego domyślnie połączenie z bazą danych, które zostało raz otwarte, jest utrzymywane przez SAS i ponownie wykorzystywane do następnego dostępu do bazy danych (connection pooling). Liczba połączeń rejestrowanych przez operację DB_OPEN_CONNECTION powinna być zatem niska.
Czas wykonania tej operacji wynosi 0-500 ms. Jeśli serwer bazy danych i SAS nie są uruchomione na tym samym komputerze, czas wymagany do komunikacji sieciowej może stanowić większą część czasu wykonania. Jeśli stale występują wyższe wartości, należy wykonać analizę.
Zamknięcie połączenia z bazą danych (DB_CLOSE_CONNECTION)
Serwer aplikacji zamyka otwarte połączenie z bazą danych poprzez JDBC. Ta operacja prawie nigdy nie powinna być rejestrowana podczas normalnej pracy, ponieważ SAS nie zamyka połączenia z bazą danych po jego otwarciu. W przeciwnym razie może dojść do błędnej konfiguracji SAS lub DBMS.
Czas wykonania tej operacji wynosi od 0 do 500 ms. Jeśli serwer bazy danych i SAS nie są uruchomione na tym samym komputerze, czas wymagany do komunikacji sieciowej może stanowić większą część czasu wykonania.
Żądanie połączenia z bazą danych (DB_ACQUIRE_CONNECTION)
Połączenie z bazą danych jest żądane z puli połączeń z bazą danych dla każdego dostępu do odczytu i po zatwierdzeniu transakcji z bazą danych. Im częściej żądane są połączenia z bazą danych, tym więcej jest dostępów do bazy. Liczba żądań jest zatem miarą liczby dostępów do bazy danych aplikacji lub akcji.
Wykonanie instrukcji bazy danych (DB_STATEMENT_EXECUTE)
Serwer aplikacji wykonuje instrukcję SQL w bazie danych w celu odczytu lub zapisu danych. Analizując tę operację, można określić, ile czasu zajęło wykonanie danej instrukcji. Konkretną instrukcję bazy danych można określić poprzez identyfikację. Ponadto zwykle dostępne są dodatkowe informacje na temat kontekstu wykonania, np. w jakiej aplikacji została wykonana instrukcja bazy danych.
Czas wykonania instrukcji może się znacznie różnić w zależności od jej złożoności. Proste instrukcje bazy danych nie powinny trwać dłużej niż 100 ms, a bardziej złożone nie dłużej niż 3 s. Jeśli serwer bazy danych i SAS nie są uruchomione na tym samym komputerze, czas wymagany do komunikacji sieciowej może stanowić większą część czasu wykonania. Jeśli czasy wykonania są stale dłuższe, należy przeanalizować przyczynę.
Potwierdź transakcję bazy danych (DB_TRANSACTION_COMMIT)
Serwer aplikacji pomyślnie zakończył transakcję bazy danych. Wszystkie operacje na bazie danych odbywają się w ramach transakcji bazy danych. Oznacza to, że zmiany w danych dokonane przez jedną lub więcej instrukcji stają się trwałe i widoczne dla innych dopiero po pomyślnym zakończeniu transakcji (commit).
Zwykle czas wykonania tej operacji wynosi od 0 do 100 ms. Jeśli serwer bazy danych i SAS nie są uruchomione na tym samym komputerze, czas wymagany do komunikacji sieciowej może stanowić większą część czasu wykonania. Jeśli czasy wykonania są stale dłuższe, należy przeanalizować przyczynę.
Anulowanie transakcji bazy danych (DB_TRANSACTION_ROLLBACK)
Serwer aplikacji anulował transakcję bazy danych. Wszystkie zmiany danych dokonane w transakcji przez instrukcje bazy danych zostały odrzucone. System anuluje transakcję bazy danych tylko w przypadku wystąpienia błędu. Operacja ta powinna zatem występować bardzo rzadko, a zwykle wcale.
Czas wykonania tej operacji wynosi od 0 do 100 ms. Jeśli serwer bazy danych i SAS nie są uruchomione na tym samym komputerze, czas wymagany do komunikacji sieciowej może stanowić większą część czasu wykonania. Jeśli czasy wykonania są stale dłuższe, należy przeanalizować przyczynę.
Ładowanie instancji obiektu biznesowego (OM_GET_OBJECT)
Serwer aplikacji załadował instancję obiektu biznesowego za pośrednictwem ObjectManager przy użyciu metody getObject(). Jeśli instancja obiektu biznesowego nie została znaleziona w pamięci podręcznej, uzyskiwany jest dostęp do bazy danych. W takim przypadku powiązana instrukcja bazy danych jest rejestrowana przez operację DB_STATEMENT_EXECUTE. Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące. Rejestrowany jest dany obiekt biznesowy i typ klucza używany do uzyskania dostępu.
Dla tej operacji nie jest wykonywany pomiar czasu.
Ładowanie zestawu instancji obiektów biznesowych (OM_GET_OBJECT_ARRAY)
Serwer aplikacji załadował zestaw instancji obiektów biznesowych za pośrednictwem ObjectManager przy użyciu metody getObjectArray(). Jeśli instancje obiektów biznesowych nie zostaną znalezione w pamięci podręcznej, zostanie uzyskany dostęp do bazy danych. W takim przypadku powiązana instrukcja bazy danych jest rejestrowana przez operację DB_STATEMENT_EXECUTE. RRejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące. Rejestrowane są również informacje o typie dostępu. Jest to dany obiekt biznesowy, liczba zwróconych instancji obiektu biznesowego i użyty typ klucza.
Dla tej operacji nie jest wykonywany pomiar czasu.
Żądanie iteratora obiektu biznesowego (OM_GET_OBJECT_ITERATOR)
Serwer aplikacji zażądał iteratora obiektów za pośrednictwem ObjectManager przy użyciu metody getObjectIterator(). Tłumaczy to określoną instrukcję OQL na instrukcję SQL specyficzną dla bazy danych i inicjalizuje przygotowaną instrukcję dostępu do bazy danych. Instrukcję OQL można określić za pomocą zarejestrowanej identyfikacji. Zmierzony czas obejmuje czas wykonania wynikowej instrukcji SQL. Czas ładowania wyników nie jest uwzględniony w zmierzonym czasie trwania. Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące.
Zwykły czas wykonania tej operacji wynosi od 0 do 500 ms.
Żądanie zestawu wyników (OM_GET_RESULT_SET)
Serwer aplikacji zażądał zestawu wyników za pośrednictwem ObjectManager przy użyciu metody getResultSet(). Określona instrukcja OQL jest tłumaczona na instrukcję SQL specyficzną dla bazy danych, a wstępnie przygotowana instrukcja jest inicjowana w celu uzyskania dostępu do bazy danych. Instrukcja OQL może być określona poprzez zalogowaną identyfikację. Zmierzony czas obejmuje czas wykonania wynikowej instrukcji SQL. Czas ładowania wyników nie jest uwzględniany w zmierzonym czasie trwania. Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące.
Zwykły czas wykonania tej operacji wynosi od 0 do 500 ms.
Żądanie instrukcji UPDATE (OM_GET_UPDATE_STATEMENT)
Serwer aplikacji zażądał instrukcji UPDATE za pośrednictwem ObjectManager przy użyciu metody getUpdateStatement(). Określona instrukcja OQL jest tłumaczona na instrukcję SQL specyficzną dla bazy danych, a przygotowana instrukcja jest inicjowana w celu uzyskania dostępu do bazy danych. Instrukcja OQL może być określona poprzez zalogowaną identyfikację. Czas wykonania samej wynikowej instrukcji SQL nie jest uwzględniany w zmierzonym czasie trwania. Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące.
Normalny czas wykonania tej operacji wynosi od 0 do 50 ms.
Rejestrowanie instancji obiektu biznesowego do przechowywania (OM_PUT_OBJECT)
Serwer aplikacji zarejestrował instancję obiektu biznesowego do zapisania za pośrednictwem ObjectManager przy użyciu metody putObject(). Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące.
Dla tej operacji nie jest przeprowadzany pomiar czasu.
Wykonanie wyszukiwania OQL (CIS_OQL_SEARCH_STATEMENT_EXECUTE)
Serwer aplikacji wykonał wyszukiwanie OQL. Zazwyczaj jest to pomoc dotycząca aplikacji i wartości pola. Instrukcja OQL wynikająca z wyszukiwania OQL jest tłumaczona na instrukcję SQL specyficzną dla bazy danych, a przygotowana instrukcja jest inicjowana w celu uzyskania dostępu do bazy danych. Instrukcja OQL może być określona poprzez zalogowaną identyfikację. Czas wykonania samej wynikowej instrukcji SQL nie jest uwzględniany w zmierzonym czasie trwania. Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące.
Zwykły czas wykonania tej operacji wynosi od 0 do 50 ms.
Wykonanie dostępu ODBC (ROUNDTRIP_ODBC)
Serwer aplikacji wykonał dostęp dla SOM lub aplikacji zewnętrznej (np. Crystal Reports) za pośrednictwem interfejsu ODBC. Wywołanie ODBC odpowiada wywołaniu funkcji ODBC podczas wykonywania raportu, a nie wykonaniu samego raportu. W celu wykonania raportu można wykonać dziesiątki wywołań w obie strony ODBC. Instrukcje SQL wykonywane dla raportu są rejestrowane za pomocą operacji DB_STATEMENT_EXECUTE.
Zmierzony czas wykonania można wykorzystać do wyciągnięcia wniosków na temat wydajności wykonania raportu. Operacje o wyjątkowo długim czasie wykonania powinny być zatem rejestrowane.
Czas wykonania tej operacji zależy w dużej mierze od złożoności raportu i wynosi od 0 do 5000 ms. Jeśli serwer bazy danych, SAS i SOM lub aplikacja zewnętrzna nie są uruchomione na tym samym komputerze, czas wymagany do komunikacji sieciowej może mieć istotny udział w czasie wykonania.
Wykonywanie dostępu przez przeglądarkę (ROUNDTRIP_GUI)
Serwer aplikacji obsłużył dostęp z przeglądarki. Większość interakcji użytkownika prowadzi do komunikacji między przeglądarką a serwerem aplikacji, który przetwarza interakcję użytkownika, wywołuje odpowiednią aplikację, która oblicza wynik i aktualizuje graficzny interfejs użytkownika. Czas jest mierzony do wykonania takiej operacji, jednak nie obejmuje to czasu trwania komunikacji między przeglądarką a serwerem aplikacji. Ta operacja jest interesująca w celu uzyskania informacji o zachowaniu odpowiedzi na interakcje użytkownika. Dlatego należy rejestrować operacje o wyraźnie długim czasie wykonywania.
Zwykły czas wykonania tej operacji wynosi od 0 do 5000 ms.
Wykonywanie dostępu do przeglądarki z czasem dostępu (ROUNDTRIP_CLIENT)
Ta operacja odpowiada operacji ROUNDTRIP_GUI. Jednak zmierzony czas trwania obejmuje również czas trwania komunikacji między przeglądarką a serwerem aplikacji. Czas ten odpowiada czasowi wyświetlanemu na pasku stanu przeglądarki dla ostatniej wykonanej operacji w obie strony.
Normalny czas wykonania tej operacji wynosi od 0 do 5000 ms.
Wykonanie interakcji aplikacji (ROUNDTRIP_PERFORM_ACTION)
Serwer aplikacji wykonał metodę performAction() aplikacji. Jeśli użytkownik wywoła interakcję w aplikacji, odpowiedzialna aplikacja ją obsłuży. W standardowej aplikacji zawsze wywoływana jest metoda performAction() aplikacji, która wykonuje odpowiednią logikę aplikacji. Czas wymagany do tego jest mierzony. Całkowity identyfikator akcji i – jeśli jest dostępny – pełna nazwa powiązanego obiektu deweloperskiego typu Action są rejestrowane jako informacje kontekstowe, aby móc przypisać operację do wywołanej interakcji. Ta operacja jest interesująca dla określenia czasu działania funkcjonalności w aplikacjach.
Zwykle czas wykonania tej operacji wynosi od 0 do 5000 ms.
Oczekiwanie na wykonanie interakcji aplikacji (ROUNDTRIP_PERFORM_ACTION_WAIT_TIME)
Liczba wątków do wykonywania interakcji aplikacji jest ograniczona dla każdego serwera aplikacji. Serwer aplikacji czeka z wykonaniem interakcji aplikacji, aż dostępny będzie wolny wątek.
Zwykle czas wykonywania tych operacji wynosi od 0 do 50 ms. Wydłużony czas oczekiwania może wskazywać, że serwer aplikacji jest przeciążony.
Wykonanie akcji aplikacji (APPLICATION_ACTION_EXECUTE)
Serwer aplikacji wykonał metodę run() aplikacji. Akcja wprowadzona dla aplikacji została wykonana. Akcje te są używane podczas wykonywania zadań przetwarzania i np. podczas otwierania aplikacji interaktywnych.
Czas wykonania wskazuje, jak długi był czas wykonania zadania przetwarzania. Umożliwia to rozpoznanie często wykonywanych lub długotrwałych zadań przetwarzania. W przypadku aplikacji działających w tle zmierzony czas obejmuje czas oczekiwania na zakończenie wszystkich wygenerowanych żądań wyjściowych.
Wykonywanie zadania wyjściowego (OUTPUT_JOB_EXECUTE)
Zadanie wyjściowe zostało wykonane. W przeciwieństwie do operacji ROUNDTRIP_ODBC, operacja OUTPUT_JOB_EXECUTE mierzy całkowity czas wykonania zadania wyjściowego. Umożliwia to rozpoznanie często wykonywanych lub długotrwałych zadań wyjściowych.
Tworzenie sesji dialogowej (SESSION_DIALOG_CREATE)
Użytkownik zalogował się interaktywnie do serwera aplikacji i w ten sposób utworzył nową sesję dialogową (sesję interaktywną). Obejmuje to utworzenie i zainicjowanie nowej sesji w odniesieniu do wybranej bazy danych i ustawień użytkownika. Mierzony jest wymagany czas do tej operacji. Rejestrując tę operację, można zweryfikować informacje dotyczące logowania.
Typowy czas wykonania tej operacji wynosi od 100 do 2000 ms.
Zatwierdzenie transakcji systemu ERP (TM_COMMIT)
Serwer aplikacji pomyślnie zakończył transakcję systemu ERP za pośrednictwem TransactionManager. Wszystkie zmienione instancje obiektów biznesowych i wszystkie zmiany wprowadzone przez dowolne wykonane instrukcje UPDATE zostały zapisane przez powiązaną pomyślnie zakończoną transakcję bazy danych (DB_TRANSACTION_COMMIT). Transakcja została usunięta ze stosu transakcji, a współdzielona pamięć podręczna serwera aplikacji została zaktualizowana. Mierzony jest wymagany czas do tej operacji. Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące.
Zwykle czas wykonania tej operacji wynosi od 0 do 100 ms.
Wycofanie transakcji systemu ERP (TM_ROLLBACK)
Serwer aplikacji anulował transakcję systemu ERP za pośrednictwem TransactionManager. Wszystkie zmiany zostały odrzucone, żadna powiązana transakcja bazy danych nie została wykonana. Transakcja została usunięta ze stosu transakcji. Mierzony jest wymagany czas do tej operacji. Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące.
Dla tej operacji nie jest przeprowadzany pomiar czasu.
Żądanie blokady z konfliktem (LOCK_ACQUIRE_WAIT)
Serwer aplikacji zażądał blokady instancji obiektu biznesowego z serwera komunikatów, który był już zablokowany w tym czasie. Może się to zdarzyć, np. jeśli instancja obiektu biznesowego jest zablokowana do zmiany w transakcji i ma zostać odczytana w innej transakcji. W rezultacie najpierw trzeba poczekać na zwolnienie, zanim będzie można pomyślnie zablokować. Mierzony jest wymagany czas do tej operacji. W normalnej pracy powinno wystąpić tylko kilka blokad z długim czasem oczekiwania. Jeśli tak nie jest, należy przeanalizować przyczynę.
Typowy czas wykonania tej operacji wynosi od 0 do 10 s. Jeśli serwer komunikatów i SAS nie są uruchomione na tym samym komputerze, czas wymagany do komunikacji sieciowej może mieć istotny udział w czasie wykonania.
Żądanie blokady bez konfliktu (LOCK_ACQUIRE_DIRECT)
Zażądano blokady instancji obiektu biznesowego, która została natychmiast przyznana. Rejestrowanie tej operacji ma zastosowanie tylko w czasie programowania, jeśli zachowanie danej aplikacji jest interesujące.
Zwykle czas wykonania tej operacji wynosi 0-50 ms. Jeśli serwer komunikatów i SAS nie są uruchomione na tym samym komputerze, czas wymagany do komunikacji sieciowej może stanowić dużą część zmierzonego czasu wykonania.
Znacznik czasu
Znacznik czasu wskazuje czas zakończenia wykonywania operacji.
Typ sesji
Wszystkie operacje są wykonywane w ramach sesji, dla zalogowanej operacji określany jest typ sesji, w której została ona wykonana. Poniższa tabela zawiera listę możliwych typów sesji wraz z krótkim objaśnieniem.
Typ sesji | Nazwa | Opis |
INITIALIZER | Inicjalizacja | Podczas tworzenia nowej sesji, znajduje się ona w fazie inicjalizacji.Określony typ sesji nie został jeszcze przypisany. |
SYSTEM | System | Sesje systemowe, które wykonują podstawowe funkcje związane z działaniem serwera aplikacji. |
BATCH | Przetwarzanie w tle | Sesje typu BATCH wykonują aplikacje w tle, które nie wymagają interakcji użytkownika. |
TOOL | Toolshell | Sesja toolshell jest wierszem poleceń serwera aplikacji.Wszystkie wykonywane narzędzia działają w tym kontekście. |
REMOTE | Dostęp zdalny | Sesja typu REMOTE jest tworzona, gdy serwer aplikacji jest dostępny zdalnie.Na tym etapie nic nie wiadomo o dokładnym typie zdalnego dostępu, typ REMOTE jest najpierw przypisywany, a następnie określany bardziej szczegółowo później. |
DIALOG | Dostęp dialogowy | Sesja tego typu jest tworzona, gdy użytkownik loguje się do serwera aplikacji interaktywnie za pośrednictwem przeglądarki.Wszystkie operacje wykonywane w wyniku interakcji użytkownika w tej sesji są przypisywane do tego typu sesji. |
ODBC | Dostęp ODBC | Sesja obsługująca zapytania ODBC z interaktywnego sterownika ODBC. Aplikacje takie jak Crystal Reports korzystają z interaktywnego sterownika ODBC Comarch ERP Enterprise. |
ODBC_SERVER | Dostęp do serwera ODBC | Ten typ sesji ma sesja, która obsługuje zapytania ODBC z SOM.W tym przypadku nazwa wykonywanego raportu jest określona w logowanej operacji. |
KNOWLEDGESTORE | Dostęp do Knowledge Store | Sesja tego typu służy do uzyskiwania dostępu do magazynu wiedzy za pośrednictwem WEB-DAV. |
RESOURCE | Dostęp do zasobów | Serwer WWW serwera aplikacji używa sesji tego typu do ładowania obrazów, ikon itp. |
CORBA | Dostęp CORBA | Zdalny dostęp z zewnętrznych aplikacji poprzez interfejs CORBA serwera aplikacji jest obsługiwany w sesji tego typu. |
WEB_SERVICES | Dostęp SOAP | Zdalny dostęp z zewnętrznych aplikacji za pośrednictwem interfejsu SOAP serwera aplikacji jest obsługiwany w sesji tego typu. |
Identyfikator GUID sesji
Identyfikator GUID sesji jest identyfikatorem sesji, w której operacja została wykonana.
Serwer aplikacji
Nazwa serwera aplikacji, który wykonał operację.
Użytkownik
Identyfikator użytkownika, w którego kontekście operacja została wykonana.
Aplikacja lub raport
Nazwa aplikacji, w której operacja została wykonana. Alternatywnie określana jest nazwa raportu wykonanego za pośrednictwem SOM.
Kategoria czasu wykonania
Podczas gdy operacja jest wykonywana, mierzony jest czas jej wykonania (t), a operacja jest klasyfikowana w kategorii czasu wykonania. Istnieją następujące kategorie:
Kategoria | Czas wykonania |
1 | 0-50 ms (0 ms <= t <= 50 ms) |
2 | 50-100 ms (50 ms < t <= 100 ms) |
3 | 100-250 ms (100 ms < t <= 250 ms) |
4 | 250-500 ms (250 ms < t <= 500 ms) |
5 | 500-1000 ms (500 ms < t <= 1000 ms) |
6 | 1000-2000 ms (1000 ms < t <= 2000 ms) |
7 | 2000-5000 ms (2000 ms < t <= 5000 ms) |
8 | 5000-20000 ms (5000 ms < t <= 20000 ms) |
9 | >20000 ms (t > 20000 ms) |
Czas trwania wykonania
Czas wykonania operacji w ms.
Identyfikacja instrukcji bazy danych
Instrukcja bazy danych jest identyfikowana przez 16-cyfrowy numer szesnastkowy. Każda instrukcja SQL, ODBC SQL lub OQL wykonywana przez serwer aplikacji jest automatycznie przypisywana do identyfikatora, który może być użyty do określenia odpowiedniej instrukcji bazy danych w aplikacji Zapytanie o polecenia bazodanowe.
Baza danych
Nazwa bazy danych, do której odnosi się operacja.
Obiekt biznesowy
W pełni kwalifikowana nazwa obiektu biznesowego, do którego odnosi się operacja.
Wyszukiwanie OQL
W pełni kwalifikowana nazwa wyszukiwania OQL używanego przez operację.
ActionID i opcjonalna Action-Description-Path
ID akcji obsługiwanej przez serwer aplikacji, w którego kontekście operacja została wykonana. Jeśli jest znany, ustawiana jest również ścieżka opisu akcji. Jest ona oddzielona od identyfikatora akcji spacją.
Key Number
Numer klucza (Key Number) określa typ klucza używany przez operację w celu uzyskania dostępu do instancji obiektu biznesowego. Wartość 0 oznacza klucz podstawowy, inna wartość oznacza klucz drugorzędny.
Liczba instancji obiektu biznesowego
Określa liczbę instancji obiektu biznesowego, do których operacja uzyskuje dostęp.
Dostępne informacje kontekstowe
Nie wszystkie informacje kontekstowe są dostępne dla każdej operacji. Poniższa tabela pokazuje, które informacje są zawsze dostępne (X), ewentualnie dostępne (O) lub niedostępne (-) dla każdej rejestrowanej operacji. Podczas analizy zarejestrowanych operacji tabela ta jest bardzo pomocna w wyszukiwaniu informacji kontekstowych, które są faktycznie dostępne dla danej operacji.
Typ sesji | Znacznik czasu | Identyfikator GUID sesji | Serwer aplikacji | Użytkownik | Aplikacja lub raport | Kategoria czasu wykonania | Czas trwania | Instrukcji bazy danych | Baza danych | Obiekt biznesowy | Wyszukiwanie OQL | Action ID | Key Number | Numer instancji obiektu biznesowego | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DB_OPEN_CONNECTION | x | x | x | x | x | O | x | x | - | x | - | - | O | - | - |
DB_CLOSE_CONNECTION | x | x | x | x | x | O | x | x | - | x | - | - | O | - | - |
DB_ACQUIRE_CONNECTION | x | x | x | x | x | O | x | x | - | x | - | - | O | - | - |
DB_STATEMENT_EXECUTE | x | x | x | x | x | O | x | x | x | x | - | - | O | - | - |
DB_TRANSACTION_COMMIT | x | x | x | x | x | O | x | x | - | x | - | - | O | - | - |
DB_TRANSACTION_ROLLBACK | x | x | x | x | x | O | x | x | - | x | - | - | O | - | - |
OM_GET_OBJECT | x | x | x | x | x | O | - | - | - | x | x | - | O | x | x |
OM_GET_OBJECT_ARRAY | x | x | x | x | x | O | - | - | - | x | x | - | O | x | x |
OM_GET_OBJECT_ITERATOR | x | x | x | x | x | O | x | x | x | x | - | - | O | - | - |
OM_GET_RESULT_SET | x | x | x | x | x | O | x | x | x | x | - | - | O | - | - |
OM_GET_UPDATE_STATEMENT | x | x | x | x | x | O | - | - | x | x | - | - | O | - | - |
OM_PUT_OBJECT | x | x | x | x | x | O | - | - | - | x | x | - | O | - | - |
CIS_OQL_SEARCH_STATEMENT_EXECUTE | x | x | x | x | x | O | x | x | x | x | - | x | O | - | - |
ROUNDTRIP_ODBC | x | x | x | x | x | O | x | x | - | - | - | - | O | - | - |
ROUNDTRIP_GUI | x | x | x | x | x | O | x | x | - | - | - | - | O | - | - |
ROUNDTRIP_PERFORM_ACTION | x | x | x | x | x | O | x | x | - | - | - | - | x | - | - |
APPLICATION_ACTION_EXECUTE | x | x | x | x | x | O | x | x | - | - | - | - | x | - | - |
OUTPUT_JOB_EXECUTE | x | x | x | x | x | O | x | x | - | - | - | - | x | - | - |
SESSION_DIALOG_CREATE | x | x | x | x | x | O | x | x | - | x | - | - | O | - | - |
TM_COMMIT | x | x | x | x | x | O | x | x | - | x | - | - | O | - | - |
TM_ROLLBACK | x | x | x | x | x | O | - | - | - | x | - | - | O | - | - |
LOCK_ACQUIRE_WAIT | x | x | x | x | x | O | x | x | - | - | - | - | O | - | - |
LOCK_ACQUIRE_DIRECT | x | x | x | x | x | O | x | x | - | - | - | - | O | - | - |
ROUNDTRIP_CLIENT | x | x | x | x | x | O | x | x | - | - | - | - | O | - | - |
ROUNDTRIP_PERFORM_ACTION__WAIT_TIME | x | x | x | x | x | O | x | x | - | - | - | - | O | - | - |
Monitor bazy danych rejestruje dodatkowe dane dla rejestrowanych operacji, które są wykorzystywane do obliczania dodatkowych informacji podczas oceny. Są to:
- Liczba wystąpień
- Całkowity czas wykonania
- Średni czas wykonania
- Najkrótszy czas wykonania
- Najdłuższy czas wykonania
- Odchylenie standardowe
- Wymagany czas procesora
- Czas wymagany dla operacji na bazie danych, które zostały wykonane w ramach rejestrowanej operacji
- Liczba instrukcji bazy danych wykonanych w ramach rejestrowanej operacji
- Pierwsze wykonanie instrukcji bazy danych w systemie ERP
Ocena informacji o wydajności
Informacje o wydajności monitora wydajności bazy danych są przechowywane w bazie danych w Business Objects. Dane można analizować za pomocą raportów lub aplikacji Panel System.
Raporty
Podobnie jak każdy inny obiekt biznesowy, monitory wydajności bazy danych można również analizować za pomocą raportów. Dostępne są następujące raporty do oceny, które można wykonać za pomocą aplikacji Raport: Dokumenty raportów:
- Informacje o wydajności: Czasochłonne działania posortowane według sumy
- Informacje o wydajności: Czasochłonne raporty posortowane według sumy
- Informacje o wydajności: Czasochłonne instrukcje bazy danych posortowane według sumy
Można również powielać te raporty i dostosowywać je do swoich potrzeb lub tworzyć nowe raporty.
Aplikacja Panel System
W aplikacji Panel System można analizować informacje o wydajności każdego monitora wydajności bazy danych. Można analizować przejściowe informacje o wydajności standardowego monitora wydajności bazy danych przez maksymalnie 24 godziny od ostatniego uruchomienia serwera aplikacji. Możesz zapytać o wszystkie inne informacje o wydajności z systemu.