Extra ontwikkelaarswerkbalk op InterSystems IRIS

Een panel met extra tools voor het monitoren en onderzoeken van fouten in applicaties en integratieoplossingen op het InterSystems IRIS-dataplatform, het Ensemble-integratieplatform en het Caché DBMS, of het verhaal van een andere fiets.

In dit artikel wil ik het hebben over de applicatie die ik, naast de standaard beheertools, dagelijks gebruik om applicaties en integratieoplossingen op het InterSystems IRIS-platform te monitoren en fouten te vinden wanneer deze zich voordoen.
De oplossing omvat het bekijken en bewerken van globale arrays, het uitvoeren van query's (inclusief JDBC/ODBC) en het verzenden van zoekresultaten via e-mail als gecomprimeerde XLS-bestanden. Bekijk klasseobjecten met de mogelijkheid om te bewerken. Verschillende eenvoudige grafieken voor systeemprotocollen.

Dit is een CSP-applicatie gebaseerd op jQuery-UI, grafiek.js, jsgrid.js
Als u geïnteresseerd bent, kijk dan hieronder en in opslagplaats.

Het begon allemaal met het bestuderen van de vraag hoe wijzigingen in objecten in InterSystems IRIS, Ensemble en het Caché DBMS konden worden vastgelegd.

Na het lezen uitstekend artikel hierover heb ik gevorkt project. en begon het af te maken voor zijn behoeften.

De resulterende oplossing wordt geïmplementeerd als een paneelsubklasse van %CSP.Util.Pane, die een hoofdopdrachtvenster en een knop Uitvoeren heeft, plus instellingen voor opdrachtverfijning.

Wanneer je binnenkomt "?" we krijgen een korte beschrijving van deze opdrachten:

Extra ontwikkelaarswerkbalk op InterSystems IRIS

Globalen

Mijn meest voorkomende opdracht is om het mondiale te bekijken. In de regel is dit een globaal protocol bij het debuggen van uw eigen project of dat van iemand anders. Je kunt het in omgekeerde volgorde bekijken, maar ook door een filter toe te passen op zowel de link als de gegevens. Gevonden knooppunten kunnen worden bewerkt en verwijderd:

Extra ontwikkelaarswerkbalk op InterSystems IRIS

U kunt de gehele global verwijderen door minus ^logMSW- in te voeren in de opdracht achter de naam.
Maar op deze manier kun je alleen globals verwijderen die beginnen met ^log (protocol globals), d.w.z. Er is een beperking tegen onbedoelde verwijdering geïmplementeerd.

Als u achter de naam een ​​“*” invoert, krijgt u een lijst met globalen met aanvullende kenmerken. De tweede “*” voegt een nieuw veld “Toegewezen MB” toe, en een ander sterretje zal “Gebruikte MB” zijn. Deze combinatie van twee rapporten en de verdeling in “sterretjes” wordt gedaan om het vaak lange rapport in bezette blokken te verdelen van grote mondiale bedrijven.

Extra ontwikkelaarswerkbalk op InterSystems IRIS

Vanuit deze tabel kunt u actieve links volgen om de globale zelf te bekijken of om deze op de standaard manier vanuit het beheerportaal te bekijken/bewerken door in het veld Toestemming op R of W te klikken.

verzoeken

Een rapport converteren naar Excel-formaat

De tweede meest gebruikte functie is het uitvoeren van query's. Om dit te doen, voert u de sql-instructie als een opdracht in.

Het belangrijkste dat voor mij voldoende was in het standaard Systeembeheerportaal was het uitvoeren van queries op JDBC/ODBC-bronnen die in het DBMS waren geconfigureerd en het uitvoeren van de resultaten in XLS-formaat, het archiveren en verzenden van het bestand per e-mail. Om dit te doen, moet u in mijn tool, voordat u de opdracht uitvoert, het selectievakje "Downloaden naar Excel-bestand" inschakelen.

Deze functie bespaart mij veel tijd in mijn dagelijkse routine en ik integreer kant-en-klare modules met succes in nieuwe applicaties en integratieoplossingen.

Extra ontwikkelaarswerkbalk op InterSystems IRIS

Maar om dit te doen, moet u eerst het pad configureren voor het maken van bestanden op de server en de inloggegevens van de gebruiker en de mailserver, hiervoor moet u op zijn beurt de knooppunten van de algemene programma-instellingen ^%App.Setting bewerken .

Extra ontwikkelaarswerkbalk op InterSystems IRIS

Rapporten wereldwijd opslaan

Heel vaak is het nodig om de resultaten van de rapportuitvoering wereldwijd op te slaan. Om dit te doen gebruik ik de volgende procedures:

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

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

Voor SQL-expressies:
##class(App.sys).SaveSQL

Voor zoekopdracht:
##class(App.sys).SaveQuery

Als u bijvoorbeeld in het paneel de opdracht
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Laten we het resultaat van het verzoek om het licentiegebruik te tellen opslaan in de ^GN-array, en u kunt zien wat er in het paneel is opgeslagen met de opdracht: result ^GN("%SYSTEM.License:Counts",0)

Extra ontwikkelaarswerkbalk op InterSystems IRIS

Modules met verbeterde functionaliteit

En de tweede verbetering, die mijn werk enorm heeft vereenvoudigd en geautomatiseerd, is de implementatie van de mogelijkheid om speciaal geschreven modules uit te voeren bij het genereren van elke queryregel. Op deze manier kan ik in één keer nieuwe functionaliteit in het rapport inbouwen, bijvoorbeeld actieve koppelingen voor aanvullende bewerkingen op gegevens.

Voorbeeld 1: Werken met de klasse App.Parameter

Maak een parameter aan met behulp van de “Tabelnavigator”

Bewerk een parameter via “Opties”

Extra ontwikkelaarswerkbalk op InterSystems IRIS

Voorbeeld 2: Globaal bekijken via de link “Geschiedenis”.

Extra ontwikkelaarswerkbalk op InterSystems IRIS

Grafieken

Geïnspireerd door het artikel [9] en om de groei van databases te visualiseren, is een pagina gemaakt die een maandelijkse grafiek weergeeft van de databasegroottes die zijn gemaakt op basis van het bestand iris.log (cconsole.log) met behulp van “Expand”-records, met terugwerkende kracht vanaf de huidige dag.

Er is bijvoorbeeld ook een gebeurtenisgrafiek gemaakt in InterSystems IRIS, die ook wordt gegenereerd op basis van het protocolbestand:

Extra ontwikkelaarswerkbalk op InterSystems IRIS

Links naar materialen:

[1] logsubsysteem in Kasha
[2] Instant pap - CRUD doen in Caché met jqGrid
[3] Alternatieve SQL-managers voor het Caché DBMS
[4] Voorbeelden van het genereren en verzenden van e-mail met behulp van het Caché DBMS
[5] Cache + jQuery. Snelle start
[6] Applicatie-implementatie
[7] UDL-ondersteuning
[8] Globalen bekijken in de Caché Management Portal
[9] Prometheus met cache
[10] Lokalisatie in het Caché DBMS

Dank aan de auteurs van deze en andere artikelen die mij hebben geholpen deze tool te maken.

PS Dit project is in ontwikkeling en veel ideeën zijn nog niet geïmplementeerd. In de nabije toekomst ben ik van plan om het volgende te doen:

1. Applicatiesjabloon op het raamwerk ukit
2. Automatische documentatie van codeformaat Doxegen met integratie in CStudio

Bron: www.habr.com

Voeg een reactie