Ekstra utviklerverktøylinje på InterSystems IRIS

Et panel med tilleggsverktøy for å overvåke og undersøke feil i applikasjoner og integrasjonsløsninger på InterSystems IRIS-dataplattformen, Ensemble-integrasjonsplattformen og Caché DBMS, eller historien om en annen sykkel.

I denne artikkelen vil jeg snakke om applikasjonen som jeg, sammen med standard administrasjonsverktøy, bruker hver dag for å overvåke applikasjoner og integrasjonsløsninger på InterSystems IRIS-plattformen og finne feil når de oppstår.
Løsningen inkluderer visning og redigering av globale arrays, kjøring av spørringer (inkludert JDBC/ODBC), sending av søkeresultater via e-post som zippede XLS-filer. Se klasseobjekter med muligheten til å redigere. Flere enkle grafer for systemprotokoller.

Dette er en CSP-applikasjon basert på jQuery-UI, chart.js, jsgrid.js
Hvis du er interessert, se nedenfor og inn oppbevaringssted.

Det hele startet med å studere spørsmålet om hvordan man logger endringer på objekter i InterSystems IRIS, Ensemble og Caché DBMS.

Etter lesing utmerket artikkel om dette gaffel jeg prosjekt. og begynte å fullføre den for hans behov.

Den resulterende løsningen er implementert som en panelunderklasse av %CSP.Util.Pane, som har et hovedkommandovindu og en Kjør-knapp, pluss innstillinger for kommandoavgrensning.

Når du skriver inn "?" vi får en kort beskrivelse av disse kommandoene:

Ekstra utviklerverktøylinje på InterSystems IRIS

Globaler

Min vanligste kommando er å se det globale. Som regel er dette en global protokoll når du feilsøker ditt eget eller andres prosjekt. Du kan se den i omvendt rekkefølge, samt ved å bruke et filter på både koblingen og dataene. Funne noder kan redigeres og slettes:

Ekstra utviklerverktøylinje på InterSystems IRIS

Du kan slette hele den globale ved å skrive inn minus ^logMSW- i kommandoen etter navnet.
Men på denne måten kan du bare slette globaler som starter med ^log (protokollglobaler), dvs. En begrensning mot utilsiktet sletting er implementert.

Hvis du skriver inn "*" etter navnet, får du en liste over globaler med tilleggsegenskaper. Den andre "*" vil legge til et nytt felt "Tildelt MB", og en annen stjerne vil være "Brukt MB". Denne kombinasjonen av to rapporter og inndelingen i "stjerner" gjøres for å dele den ofte langvarige rapporten i okkuperte blokker av store globaler.

Ekstra utviklerverktøylinje på InterSystems IRIS

Fra denne tabellen kan du følge aktive lenker for å se selve globalen eller for å se/redigere den på standard måte fra administrasjonsportalen ved å klikke R eller W i Tillatelsesfeltet.

forespørsler

Konvertere en rapport til Excel-format

Den nest mest brukte funksjonen er kjøring av spørringer. For å gjøre dette, skriv inn sql-setningen som en kommando.

Det viktigste som var nok for meg i standard System Management Portal var å utføre spørringer på JDBC/ODBC-kilder konfigurert i DBMS og sende ut resultatene i XLS-format, arkivere og sende filen via e-post. For å gjøre dette, i verktøyet mitt, før du utfører kommandoen, må du aktivere avmerkingsboksen "Last ned til Excel-fil".

Denne funksjonen sparer meg for mye tid i min daglige rutine, og jeg lykkes med å integrere ferdige moduler i nye applikasjoner og integrasjonsløsninger.

Ekstra utviklerverktøylinje på InterSystems IRIS

Men for å gjøre dette må du først konfigurere banen for å lage filer på serveren og påloggingsinformasjonen til brukeren og e-postserveren; for dette må du i sin tur redigere nodene til de globale programinnstillingene ^%App.Setting .

Ekstra utviklerverktøylinje på InterSystems IRIS

Lagre rapporter globalt

Svært ofte er det nødvendig å lagre resultatene av rapportutførelse globalt. For å gjøre dette bruker jeg følgende prosedyrer:

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

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

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

For spørring:
##class(App.sys).SaveQuery

For eksempel, hvis kommandoen i panelet
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
La oss lagre resultatet av forespørselen om telling av lisensbruk i ^GN-matrisen, og du kan se hva som ble lagret i panelet med kommandoen: result ^GN("%SYSTEM.License:Counts",0)

Ekstra utviklerverktøylinje på InterSystems IRIS

Utvidede funksjonalitetsmoduler

Og den andre forbedringen, som i stor grad forenklet og automatiserte arbeidet mitt, er implementeringen av muligheten til å utføre spesialskrevne moduler ved generering av hver spørringslinje. På denne måten kan jeg bygge ny funksjonalitet inn i rapporten i en fart, for eksempel aktive lenker for ytterligere operasjoner på data.

Eksempel 1: Arbeid med App.Parameter-klassen

Lag en parameter ved å bruke "Tabellnavigator"

Rediger en parameter via "Alternativer"

Ekstra utviklerverktøylinje på InterSystems IRIS

Eksempel 2: Vise den globale via koblingen "Historikk".

Ekstra utviklerverktøylinje på InterSystems IRIS

Kart

Inspirert av artikkelen [9] og for å visualisere veksten av databaser, ble det laget en side som viser en månedlig graf over databasestørrelser opprettet fra iris.log-filen (cconsole.log) ved å bruke "Expand"-poster retrospektivt fra gjeldende dag.

Som et eksempel er det også laget en hendelsesgraf i InterSystems IRIS, som også er generert fra protokollfilen:

Ekstra utviklerverktøylinje på InterSystems IRIS

Lenker til materiell:

[1] logging undersystem i Kasha
[2] Øyeblikkelig grøt - gjør CRUD i Caché med jqGrid
[3] Alternative SQL-administratorer for Caché DBMS
[4] Eksempler på generering og sending av e-post ved hjelp av Caché DBMS
[5] Cache + jQuery. Rask start
[6] Applikasjonsimplementering
[7] UDL-støtte
[8] Viser globaler i Caché Management Portal
[9] Prometheus med cache
[10] Lokalisering i Caché DBMS

Takk til forfatterne av disse og andre artiklene som hjalp meg med å lage dette verktøyet.

PS Dette prosjektet er under utvikling og mange ideer er ennå ikke implementert. I nær fremtid planlegger jeg å gjøre:

1. Søknadsmal på rammeverket uikit
2. Autodokumentasjon av kodeformat Doxegen med integrasjon i CStudio

Kilde: www.habr.com

Legg til en kommentar