Ogólne informacje o buforowaniu
Duża część informacji w systemie ulega zmianom stosunkowo rzadko. Aby uniknąć konieczności uzyskiwania dostępu do bazy danych za każdym razem, gdy takie informacje wymagane są przez użytkownika końcowego lub w procesie zadania, system utrzymuje na serwerze WWW oraz w procesie roboczym puli wątków zadania bufor zawierający informacje statyczne. Bufory tego typu są nazywane "buforami aplikacji". Przykładowe bufory aplikacji:
-
komunikaty systemowe,
-
etykieta pola oraz inne informacje dotyczące pola,
-
informacje o zabezpieczeniach.
Product typu framework zawiera wiele specyficznych buforów przeznaczonych dla powszechnie używanych danych, które rzadko ulegają zmianie. Dodatkowo, w razie potrzeby, określone aplikacje brzegowe mogą wprowadzać dodatkowe bufory.
Informacje mogą być również buforowane w przeglądarkach użytkowników.
Poniższe tematy zawierają informacje na temat odświeżania różnych buforów.
Bufor serwera
Bufor serwera oznacza dane buforowane na serwerze WWW. Użycie tego bufora ma duże znaczenie dla dostępu użytkownika do aplikacji w trybie online. Bufory znacznie poprawiają wydajność podczas poruszania się po systemie, umożliwiając dostęp do danych z bufora, bez konieczności uzyskiwania dostępu do bazy danych. Poza umożliwieniem dostępu użytkownika do bufora serwera WWW inne funkcje wdrożone na serwerze WWW również wykorzystują bufory w podobny sposób. Na przykład usługi WWW są wdrożone na serwerze WWW i mają dostęp do własnej wersji bufora.
Zawartość bufora jest czyszczona przy każdym ponownym uruchomieniu serwera WWW. Oznacza to, że najnowsze wartości są pobierane z bazy danych, gdy użytkownicy i usługi WWW ponownie zaczynają korzystać z aplikacji.
Produkt zawiera także polecenie opróżniania pamięci, które można podać w adresie URL przeglądarki, aby natychmiast wyczyścić zawartość bufora. Polecenie flushAll.jsp powoduje opróżnienie wszystkich buforów.
Przyjmijmy na przykład następujące założenia:
- nazwa serwera WWW i numer portu wywołań to OU-Production:7500
- do tabeli kontrolnej dodawany jest nowy rekord, który powinien być natychmiast dostępny w odpowiednich transakcjach
Na pasku adresu przeglądarki należy wpisać następujące polecenie: http://OU-Production:7500/flushAll.jsp. To polecenie zastępuje typowe polecenie cis.jsp, które wyświetlane jest za numerem portu.
Jeśli poprawnie skonfigurowano system, polecenie flushAll spowoduje przesłanie żądania wykonania "globalnego" opróżniania buforów (w tym bufora usług internetowych i bufora procesu roboczego puli wątków). Do opublikowania zlecenia opróżniania w tej funkcji używany jest temat JMS. Szczegóły dotyczące sposobu konfigurowania tematu JMS można znaleźć w publikacji Server Administration Guide.
W systemie dostępna jest również usługa biznesowa F1-FlushAllService, będąca odpowiednikiem polecenia flushAll (z taką różnicą, że nie powoduje ona ponownego uruchomienia sesji przeglądarki). Może być przydatna w przypadku procesów, które są tworzone na potrzeby orkiestracji aktualizacji w danych konfiguracyjnych, w celu zapewnienia natychmiastowego opróżnienia bufora. Ta usługa biznesowa jest również widoczna jako usługa internetowa REST.
Bufor zadania
Podczas przesyłania zadania w składniku zadania stosowany jest bufor danych Hibernate, który umożliwia buforowanie danych administracyjnych rzadko ulegających zmianie. Tabele, których rekordy uwzględniono w tym buforze, konfiguruje się za pomocą wartości Zbuforowane dla zadania w opcji "Reguły buforowania". Jest on także często nazywany "Buforem L2". Więcej informacji zawiera sekcja Tabele. Podczas uruchomienia procesu roboczego puli wątków dane oznaczone w tabelach jako zbuforowane są ładowane i buforowane, dopóki pula wątków jest uruchomiona.
W razie potrzeby zadania mają także dostęp do buforów aplikacji. Podczas uruchomienia procesu roboczego puli wątków zbuforowane dane aplikacji są ładowane i buforowane, dopóki pula wątków jest uruchomiona.
Jeśli istnieją zadania powodujące aktualizację tabel oznaczonych jako Zbuforowane dla zadania, należy uruchomić to zadanie przy użyciu specjalnej puli wątków, która jest konfigurowana z wyłączonym buforowaniem. Aby potwierdzić, czy pula wątków została skonfigurowana w taki sposób, należy skontaktować się z administratorem systemu.
W poniższych punktach przedstawiono sposób odświeżenia bufora w przypadku wystąpienia zmian w buforowanych danych, które są wymagane w następnym zadaniu:
-
Domyślnie system jest skonfigurowany w taki sposób, aby odświeżać bufor Hibernate co 60 sekund. W ramach wdrożenia można jednak nadpisać tę konfigurację, zmieniając liczbę sekund między interwałami lub całkowicie wyłączając automatyczne buforowanie. Odświeżanie nie wpływa na bufory aplikacji używane w zadaniach.
-
Należy ponownie uruchomić procesy robocze puli wątków.
-
Należy uruchomić proces w tle F1–FLUSH (Opróżnianie wszystkich buforów). Ten proces działający w tle spowoduje opróżnienie danych aplikacji buforowanych dla wszystkich procesów roboczych wszystkich pul wątków.
-
Jeśli w danym regionie skonfigurowano "nasłuchiwanie" żądań globalnego opróżniania w procesach roboczych puli wątków w sposób opisany w sekcji Bufor serwera, wówczas po wydaniu polecenia flushAll odświeżane są także bufory procesów roboczych puli wątków.
Bufor klienta
Informacje są buforowane nie tylko w pamięci podręcznej na serwerze WWW, lecz także w pamięciach podręcznych przeglądarek użytkowników końcowych. Po wyczyszczeniu pamięci podręcznej na serwerze WWW należy także wyczyścić pamięć podręczną w przeglądarce komputera klienckiego. Aby wykonać tę czynność, należy postępować według poniższych kroków (mogą się one nieznacznie różnić w zależności od przeglądarki użytkownika):
- Wybrać pozycję Narzędzia na pasku menu przeglądarki.
- Z wyświetlonego menu należy wybrać pozycję Opcje internetowe....
- W wyskakującym oknie nacisnąć przycisk Usuń pliki.
- Włączyć opcję Usuń całą zawartość offline w następnym wyskakującym oknie, a następnie nacisnąć przycisk OK.
- Następnie wprowadzić standardowy adres URL, aby ponownie wywołać system.