Un panou de instrumente suplimentare pentru monitorizarea și investigarea erorilor din aplicații și soluții de integrare pe platforma de date InterSystems IRIS, platforma de integrare Ensemble și DBMS Caché, sau povestea unei alte biciclete.
În acest articol vreau să vorbesc despre aplicația pe care, alături de instrumentele standard de administrare, o folosesc zilnic pentru a monitoriza aplicațiile și soluțiile de integrare pe platforma InterSystems IRIS și pentru a găsi erori atunci când apar.
Soluția include vizualizarea și editarea matricelor globale, rularea de interogări (inclusiv JDBC/ODBC), trimiterea rezultatelor căutării prin e-mail ca fișiere XLS arhivate. Vizualizați obiecte de clasă cu posibilitatea de a edita. Mai multe grafice simple pentru protocoale de sistem.
Aceasta este o aplicație CSP bazată pe
Dacă sunteți interesat, vă rugăm să vedeți mai jos și în
Totul a început cu studierea întrebării cum să înregistrezi modificările aduse obiectelor în InterSystems IRIS, Ensemble și DBMS Caché.
Dupa citit
Soluția rezultată este implementată ca o subclasă de panou a %CSP.Util.Pane, care are o fereastră principală de comandă și un buton Run, plus setări de rafinare a comenzii.
Când introduceți „?” primim o scurtă descriere a acestor comenzi:
Globale
Cea mai comună comandă a mea este să vizualizez global. De regulă, acesta este un protocol global atunci când depanați propriul proiect sau al altcuiva. Îl puteți vizualiza în ordine inversă, precum și prin aplicarea unui filtru atât link-ului, cât și datelor. Nodurile găsite pot fi editate și șterse:
Puteți șterge întregul global introducând minus ^logMSW- în comanda după nume.
Dar în acest fel puteți șterge numai globaluri care încep cu ^log (protocol globale), adică. A fost implementată o restricție împotriva ștergerii accidentale.
Dacă introduceți „*” după nume, veți obține o listă de globale cu caracteristici suplimentare. Al doilea „*” va adăuga un câmp nou „MB alocat”, iar un alt asterisc va fi „MB folosit”. Această combinație de două rapoarte și împărțirea în „asteriscuri” se face pentru a împărți raportul de multe ori de lungă durată în blocuri ocupate. a marilor globale.
Din acest tabel puteți urmări link-uri active pentru a vizualiza globalul în sine sau pentru a-l vizualiza/editați în mod standard din portalul de management făcând clic pe R sau W în câmpul Permisiune.
cereri
Conversia unui raport în format Excel
A doua funcție cel mai frecvent utilizată este execuția interogării. Pentru a face acest lucru, introduceți instrucțiunea sql ca comandă.
Principalul lucru care mi-a fost suficient în portalul standard de management al sistemului a fost executarea de interogări pe sursele JDBC/ODBC configurate în DBMS și scoaterea rezultatelor în format XLS, arhivarea și trimiterea fișierului prin e-mail. Pentru a face acest lucru, în instrumentul meu, înainte de a executa comanda, trebuie să activați caseta de selectare „Descărcați în fișierul Excel”.
Această funcție îmi economisește mult timp în rutina mea zilnică și integrez cu succes module gata făcute în aplicații noi și soluții de integrare.
Dar pentru a face acest lucru, trebuie mai întâi să configurați calea pentru crearea fișierelor pe server și acreditările utilizatorului și serverului de e-mail, la rândul său, trebuie să editați nodurile setărilor globale ale programului ^%App.Setting .
Salvarea rapoartelor la nivel global
Foarte des este necesar să se salveze rezultatele execuției raportului la nivel global. Pentru a face acest lucru, folosesc următoarele proceduri:
Pentru JDBC:
##class(App.sys).SqlToDSN
Pentru ODBC:
##class(App.sys).SaveGateway
Pentru expresiile SQL:
##class(App.sys).SaveSQL
Pentru interogare:
##class(App.sys).SaveQuery
De exemplu, dacă în panou comanda
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Să salvăm rezultatul solicitării de contorizare a utilizării licenței în matricea ^GN și puteți vedea ce a fost salvat în panou cu comanda: result ^GN("%SYSTEM.License:Counts",0)
Module de funcționalitate sporite
Iar a doua îmbunătățire, care mi-a simplificat și automatizat foarte mult munca, a fost implementarea capacității de a executa module special scrise la generarea fiecărei linii de interogare. În acest fel, pot construi noi funcționalități în raport dintr-o singură trecere, de exemplu, legături active pentru operațiuni suplimentare asupra datelor.
Exemplul 1: Lucrul cu clasa App.Parameter
Creați un parametru utilizând „Table Navigator”
Editați un parametru prin „Opțiuni”
Exemplul 2: Vizualizarea globală prin linkul „Istoric”.
Graficele
Inspirat de articolul [9] și pentru a vizualiza creșterea bazelor de date, a fost creată o pagină care afișează un grafic lunar al dimensiunilor bazei de date create din fișierul iris.log (cconsole.log) folosind înregistrările „Expand” retrospectiv din ziua curentă.
De exemplu, a fost creat și un grafic de evenimente în InterSystems IRIS, care este, de asemenea, generat din fișierul de protocol:
Legături către materiale:
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
Mulțumesc autorilor acestor și altor articole care m-au ajutat să creez acest instrument.
PS Acest proiect este în curs de dezvoltare și multe idei nu au fost încă implementate. În viitorul apropiat am de gând să fac:
1. Șablon de aplicație pe cadru
2. Documentarea automată a formatului de cod
Sursa: www.habr.com