Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Panel dodatkowych narzędzi do monitorowania i badania błędów w aplikacjach i rozwiązaniach integracyjnych na platformie danych InterSystems IRIS, platformie integracyjnej Ensemble i Caché DBMS, czyli historia innego roweru.

W tym artykule chcę opowiedzieć o aplikacji, która wraz ze standardowymi narzędziami administracyjnymi wykorzystuję na co dzień do monitorowania aplikacji i rozwiązań integracyjnych na platformie InterSystems IRIS oraz wychwytywania błędów w przypadku ich wystąpienia.
Rozwiązanie obejmuje przeglądanie i edycję tablic globalnych, uruchamianie zapytań (w tym JDBC/ODBC), wysyłanie wyników wyszukiwania e-mailem w postaci spakowanych plików XLS. Przeglądaj obiekty klas z możliwością edycji. Kilka prostych wykresów dla protokołów systemowych.

Jest to aplikacja CSP oparta na jQuery-UI, wykres.js, jsgrid.js
Jeśli jesteś zainteresowany, zobacz poniżej i w magazyn.

Wszystko zaczęło się od zbadania problemu rejestrowania zmian w obiektach w InterSystems IRIS, Ensemble i Caché DBMS.

Po przeczytaniu doskonały artykuł w tej sprawie rozwidliłem się projekt. i zaczął go wykańczać na swoje potrzeby.

Powstałe rozwiązanie zostało zaimplementowane jako podklasa panelu %CSP.Util.Pane, która zawiera główne okno poleceń i przycisk Uruchom, a także ustawienia doprecyzowania poleceń.

Kiedy wpiszesz „?” otrzymujemy krótki opis tych poleceń:

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Globaliści

Moim najczęstszym poleceniem jest wyświetlenie pliku global. Z reguły jest to protokół globalny podczas debugowania własnego lub cudzego projektu. Można to wyświetlić w odwrotnej kolejności, a także stosując filtr zarówno do łącza, jak i do danych. Znalezione węzły można edytować i usuwać:

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Możesz usunąć cały global, wpisując minus ^logMSW- w poleceniu po nazwie.
Ale w ten sposób możesz usuwać tylko globale zaczynające się od ^log (globale protokołu), tj. Wprowadzono ograniczenie przed przypadkowym usunięciem.

Jeśli po nazwie wpiszesz „*”, otrzymasz listę globali z dodatkowymi cechami. Drugie „*” doda nowe pole „Przydzielone MB”, a kolejna gwiazdka będzie „Wykorzystane MB”. To połączenie dwóch raportów i podział na „gwiazdki” ma na celu podzielenie często długiego raportu na zajęte bloki dużych globalistów.

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Z tej tabeli można skorzystać z aktywnych łączy, aby wyświetlić sam plik globalny lub wyświetlić/edytować go w standardowy sposób z poziomu portalu zarządzania, klikając R lub W w polu Uprawnienie.

wnioski

Konwersja raportu do formatu Excel

Drugą najczęściej używaną funkcją jest wykonywanie zapytań. Aby to zrobić, wprowadź instrukcję sql jako polecenie.

Najważniejsze, co mi wystarczyło w standardowym Portalu Zarządzania Systemem, to wykonanie zapytań na źródłach JDBC/ODBC skonfigurowanych w DBMS i wyświetlenie wyników w formacie XLS, archiwizacja i przesłanie pliku e-mailem. Aby to zrobić, w moim narzędziu przed wykonaniem polecenia należy zaznaczyć pole wyboru „Pobierz do pliku Excel”.

Ta funkcja pozwala mi zaoszczędzić dużo czasu w codziennej pracy, a gotowe moduły z powodzeniem integruję z nowymi aplikacjami i rozwiązaniami integracyjnymi.

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Ale aby to zrobić, musisz najpierw skonfigurować ścieżkę do tworzenia plików na serwerze oraz poświadczenia użytkownika i serwera pocztowego, w tym celu z kolei musisz edytować węzły globalnych ustawień programu ^%App.Setting .

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Zapisywanie raportów globalnie

Bardzo często konieczne jest zapisanie wyników wykonania raportu globalnie. W tym celu stosuję następujące procedury:

Dla JDBC:
##class(App.sys).SqlToDSN

Dla ODBC:
##class(App.sys).SaveGateway

Dla wyrażeń SQL:
##class(App.sys).ZapiszSQL

Dla zapytania:
##class(App.sys).SaveQuery

Na przykład, jeśli w panelu zostanie wydane polecenie
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Zapiszmy wynik żądania zliczenia wykorzystania licencji w tablicy ^GN, a co zostało zapisane w panelu, zobaczysz komendą: result ^GN("%SYSTEM.License:Counts",0)

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Rozszerzone moduły funkcjonalne

A drugim usprawnieniem, które znacznie uprościło i zautomatyzowało moją pracę, jest zaimplementowanie możliwości wykonywania specjalnie napisanych modułów przy generowaniu każdej linii zapytania. Dzięki temu mogę na bieżąco w jednym przebiegu wbudować w raport nową funkcjonalność, np. aktywne linki do dodatkowych operacji na danych.

Przykład 1: Praca z klasą App.Parameter

Utwórz parametr za pomocą „Nawigatora tabel”

Edytuj parametr za pomocą „Opcji”

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Przykład 2: Przeglądanie globalne poprzez link „Historia”.

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Wykresy

Zainspirowana artykułem [9] oraz w celu wizualizacji rozwoju baz danych, utworzono stronę wyświetlającą miesięczny wykres rozmiarów baz danych utworzonych z pliku iris.log (cconsole.log) przy użyciu rekordów „Rozwiń” retrospektywnie od bieżącego dnia.

Dla przykładu w InterSystems IRIS utworzono także wykres zdarzeń, który również jest generowany z pliku protokołu:

Dodatkowy pasek narzędzi deweloperskich w InterSystems IRIS

Linki do materiałów:

[1] podsystem logowania w Kasha
[2] Owsianka błyskawiczna - robi CRUD w Caché przy użyciu jqGrid
[3] Alternatywne menedżery SQL dla Caché DBMS
[4] Przykłady generowania i wysyłania wiadomości e-mail przy użyciu systemu DBMS Cache
[5] Pamięć podręczna + jQuery. Szybki start
[6] Wdrożenie aplikacji
[7] Wsparcie UDL
[8] Wyświetlanie globali w portalu zarządzania pamięcią podręczną
[9] Prometeusz z Cache’em
[10] Lokalizacja w systemie DBMS Cache

Dziękuję autorom tych i innych artykułów, którzy pomogli mi stworzyć to narzędzie.

PS Projekt się rozwija i wiele pomysłów nie zostało jeszcze wdrożonych. W najbliższej przyszłości planuję zrobić:

1. Szablon aplikacji na frameworku ukit
2. Autodokumentacja formatu kodu Doxegen z integracją z CStudio

Źródło: www.habr.com

Dodaj komentarz