Udviklerværktøjspanel på InterSystems IRIS

Et panel med yderligere værktøjer til overvågning og undersøgelse af fejl i applikationer og integrationsløsninger på InterSystems IRIS-dataplatformen, Ensemble-integrationsplatformen og Caché DBMS eller historien om en anden cykel.

I denne artikel vil jeg fortælle om den applikation, som jeg sammen med standard administrationsværktøjer bruger hver dag til at overvåge applikationer og integrationsløsninger på InterSystems IRIS platformen og finde fejl, når de opstår.
Løsningen omfatter visning og redigering af globale arrays, kørsel af forespørgsler (inklusive JDBC/ODBC), afsendelse af søgeresultater via e-mail som zippede XLS-filer. Se klasseobjekter med mulighed for at redigere. Flere simple grafer til systemprotokoller.

Dette er en CSP-applikation baseret på jQuery-UI, diagram.js, jsgrid.js
Hvis du er interesseret, se venligst nedenfor og i depot.

Det hele startede med at studere spørgsmålet om, hvordan man logger ændringer til objekter i InterSystems IRIS, Ensemble og Caché DBMS.

Efter læsning fremragende artikel om dette gaffel jeg projekt. og begyndte at gøre det færdigt til hans behov.

Den resulterende løsning er implementeret som en panelunderklasse af %CSP.Util.Pane, som har et hovedkommandovindue og en Kør-knap plus indstillinger for kommandoforfining.

Når du indtaster "?" vi får en kort beskrivelse af disse kommandoer:

Udviklerværktøjspanel på InterSystems IRIS

Globaler

Min mest almindelige kommando er at se det globale. Som regel er dette en global protokol, når du fejlretter dit eget eller en andens projekt. Du kan se det i omvendt rækkefølge, såvel som ved at anvende et filter på både linket og dataene. Fundne noder kan redigeres og slettes:

Udviklerværktøjspanel på InterSystems IRIS

Du kan slette hele den globale ved at indtaste minus ^logMSW- i kommandoen efter navnet.
Men på denne måde kan du kun slette globaler, der starter med ^log (protokolglobale), dvs. Der er implementeret en begrænsning mod utilsigtet sletning.

Hvis du indtaster "*" efter navnet, får du en liste over globaler med yderligere karakteristika. Den anden "*" vil tilføje et nyt felt "Tildelt MB", og en anden stjerne vil være "Brugt MB". Denne kombination af to rapporter og opdelingen i "stjerner" er lavet for at opdele den ofte langvarige rapport i besatte blokke af store globaler.

Udviklerværktøjspanel på InterSystems IRIS

Fra denne tabel kan du følge aktive links for at se selve globalen eller for at se/redigere den på standard måde fra administrationsportalen ved at klikke på R eller W i feltet Tilladelse.

anmodninger

Konvertering af en rapport til Excel-format

Den næstmest anvendte funktion er udførelse af forespørgsler. For at gøre dette skal du indtaste sql-sætningen som en kommando.

Det vigtigste, der var nok for mig i standard System Management Portal, var at udføre forespørgsler på JDBC/ODBC-kilder konfigureret i DBMS og udsende resultaterne i XLS-format, arkivere og sende filen via e-mail. For at gøre dette skal du i mit værktøj, før du udfører kommandoen, aktivere afkrydsningsfeltet "Download til Excel-fil".

Denne funktion sparer mig for en masse tid i min daglige rutine, og jeg har succesfuldt integreret færdige moduler i nye applikationer og integrationsløsninger.

Udviklerværktøjspanel på InterSystems IRIS

Men for at gøre dette skal du først konfigurere stien til oprettelse af filer på serveren og bruger- og mailserverens legitimationsoplysninger; for dette skal du igen redigere noderne for de globale programindstillinger ^%App.Setting .

Udviklerværktøjspanel på InterSystems IRIS

Gemmer rapporter globalt

Meget ofte er det nødvendigt at gemme resultaterne af rapportudførelse globalt. For at gøre dette bruger jeg følgende procedurer:

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

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

For SQL-udtryk:
##class(App.sys).SaveSQL

For forespørgsel:
##class(App.sys).SaveQuery

For eksempel, hvis kommandoen i panelet
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Lad os gemme resultatet af anmodningen om optælling af licensbrug i ^GN-arrayet, og du kan se, hvad der blev gemt i panelet med kommandoen: result ^GN("%SYSTEM.License:Counts",0)

Udviklerværktøjspanel på InterSystems IRIS

Udvidede funktionalitetsmoduler

Og den anden forbedring, som i høj grad forenklede og automatiserede mit arbejde, er implementeringen af ​​muligheden for at udføre specialskrevne moduler ved generering af hver forespørgselslinje. På denne måde kan jeg indbygge ny funktionalitet i rapporten on the fly i én omgang, for eksempel aktive links til yderligere operationer på data.

Eksempel 1: Arbejde med App.Parameter-klassen

Opret en parameter ved hjælp af "Tabel Navigator"

Rediger en parameter via "Indstillinger"

Udviklerværktøjspanel på InterSystems IRIS

Eksempel 2: Se det globale via linket "Historie".

Udviklerværktøjspanel på InterSystems IRIS

Grafer

Inspireret af artiklen [9] og for at visualisere væksten af ​​databaser, blev der oprettet en side, der viser en månedlig graf over databasestørrelser oprettet fra iris.log-filen (cconsole.log) ved hjælp af "Expand"-poster retrospektivt fra den aktuelle dag.

Som et eksempel er der også lavet en hændelsesgraf i InterSystems IRIS, som også er genereret fra protokolfilen:

Udviklerværktøjspanel på InterSystems IRIS

Links til materialer:

[1] logning undersystem i Kasha
[2] Øjeblikkelig grød - laver CRUD i Caché ved hjælp af jqGrid
[3] Alternative SQL-managere til Caché DBMS
[4] Eksempler på generering og afsendelse af e-mail ved hjælp af Caché DBMS
[5] Cache + jQuery. Hurtig start
[6] Applikationsimplementering
[7] UDL support
[8] Visning af globaler i Caché Management Portal
[9] Prometheus med cache
[10] Lokalisering i Caché DBMS

Tak til forfatterne til disse og andre artikler, der hjalp mig med at skabe dette værktøj.

PS Dette projekt er under udvikling, og mange ideer er endnu ikke blevet implementeret. I den nærmeste fremtid planlægger jeg at gøre:

1. Ansøgningsskabelon på rammen wow
2. Autodokumentation af kodeformat Doxegen med integration i CStudio

Kilde: www.habr.com

Tilføj en kommentar