Entwicklertools-Panel auf InterSystems IRIS

Ein Panel mit zusätzlichen Tools zur Überwachung und Untersuchung von Fehlern in Anwendungen und Integrationslösungen auf der InterSystems IRIS-Datenplattform, der Ensemble-Integrationsplattform und dem Caché DBMS oder die Geschichte eines anderen Fahrrads.

In diesem Artikel möchte ich über die Anwendung sprechen, die ich zusammen mit Standard-Administrationstools jeden Tag verwende, um Anwendungen und Integrationslösungen auf der InterSystems IRIS-Plattform zu überwachen und Fehler zu finden, wenn sie auftreten.
Die Lösung umfasst das Anzeigen und Bearbeiten globaler Arrays, das Ausführen von Abfragen (einschließlich JDBC/ODBC) und das Versenden von Suchergebnissen per E-Mail als komprimierte XLS-Dateien. Klassenobjekte mit Bearbeitungsmöglichkeit anzeigen. Mehrere einfache Diagramme für Systemprotokolle.

Dies ist eine CSP-Anwendung, die auf basiert jQuery-UI, chart.js, jsgrid.js
Bei Interesse schauen Sie sich bitte unten und in um Repository.

Alles begann mit der Untersuchung der Frage, wie Änderungen an Objekten in InterSystems IRIS, Ensemble und dem Caché DBMS protokolliert werden können.

Nach dem Lesen ausgezeichneter Artikel Darüber habe ich gespalten Projekt. und begann, es für seine Bedürfnisse fertigzustellen.

Die resultierende Lösung wird als Panel-Unterklasse von %CSP.Util.Pane implementiert, die über ein Hauptbefehlsfenster und eine Schaltfläche „Ausführen“ sowie Einstellungen zur Befehlsverfeinerung verfügt.

Wenn Du eintrittst "?" Wir erhalten eine kurze Beschreibung dieser Befehle:

Entwicklertools-Panel auf InterSystems IRIS

Globals

Mein häufigster Befehl ist die globale Anzeige. In der Regel handelt es sich dabei um ein globales Protokoll beim Debuggen Ihres eigenen oder fremden Projekts. Sie können es in umgekehrter Reihenfolge anzeigen oder indem Sie einen Filter sowohl auf den Link als auch auf die Daten anwenden. Gefundene Knoten können bearbeitet und gelöscht werden:

Entwicklertools-Panel auf InterSystems IRIS

Sie können das gesamte Global löschen, indem Sie im Befehl nach dem Namen das Minus ^logMSW- eingeben.
Auf diese Weise können Sie jedoch nur Globals löschen, die mit ^log beginnen (Protokoll-Globals), d. h. Eine Einschränkung gegen versehentliches Löschen wurde implementiert.

Wenn Sie nach dem Namen „*“ eingeben, erhalten Sie eine Liste von Globals mit zusätzlichen Merkmalen. Das zweite „*“ fügt ein neues Feld „Allocated MB“ hinzu und ein weiteres Sternchen wird „Used MB“ sein. Diese Kombination aus zwei Berichten und die Aufteilung in „Sternchen“ dient dazu, den oft langen Bericht in belegte Blöcke zu unterteilen von großen Globals.

Entwicklertools-Panel auf InterSystems IRIS

Von dieser Tabelle aus können Sie aktiven Links folgen, um das Global selbst anzuzeigen oder es auf die übliche Weise vom Verwaltungsportal aus anzuzeigen/zu bearbeiten, indem Sie im Feld „Berechtigung“ auf R oder W klicken.

Anfragen

Konvertieren eines Berichts in das Excel-Format

Die am zweithäufigsten verwendete Funktion ist die Abfrageausführung. Geben Sie dazu die SQL-Anweisung als Befehl ein.

Das Wichtigste, was mir im Standard-Systemverwaltungsportal gereicht hat, war die Ausführung von Abfragen auf im DBMS konfigurierten JDBC/ODBC-Quellen und die Ausgabe der Ergebnisse im XLS-Format, die Archivierung und der Versand der Datei per E-Mail. Dazu müssen Sie in meinem Tool vor der Ausführung des Befehls das Kontrollkästchen „In Excel-Datei herunterladen“ aktivieren.

Diese Funktion spart mir im Alltag viel Zeit und ich integriere vorgefertigte Module erfolgreich in neue Anwendungen und Integrationslösungen.

Entwicklertools-Panel auf InterSystems IRIS

Dazu müssen Sie jedoch zunächst den Pfad zum Erstellen von Dateien auf dem Server und die Anmeldeinformationen des Benutzers und des Mailservers konfigurieren. Dazu müssen Sie wiederum die Knoten der globalen Programmeinstellungen ^%App.Setting bearbeiten .

Entwicklertools-Panel auf InterSystems IRIS

Berichte global speichern

Sehr oft ist es notwendig, die Ergebnisse der Berichtsausführung global zu speichern. Dazu verwende ich folgende Verfahren:

Für JDBC:
##class(App.sys).SqlToDSN

Für ODBC:
##class(App.sys).SaveGateway

Für SQL-Ausdrücke:
##class(App.sys).SaveSQL

Zur Anfrage:
##class(App.sys).SaveQuery

Zum Beispiel, wenn im Panel der Befehl
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Speichern wir das Ergebnis der Anfrage zur Lizenznutzungszählung im Array ^GN, und Sie können mit dem Befehl sehen, was im Panel gespeichert wurde: result ^GN("%SYSTEM.License:Counts",0)

Entwicklertools-Panel auf InterSystems IRIS

Erweiterte Funktionsmodule

Und die zweite Verbesserung, die meine Arbeit stark vereinfacht und automatisiert hat, ist die Implementierung der Möglichkeit, beim Generieren jeder Abfragezeile speziell geschriebene Module auszuführen. Auf diese Weise kann ich in einem Durchgang neue Funktionen in den Bericht integrieren, beispielsweise aktive Links für zusätzliche Datenoperationen.

Beispiel 1: Arbeiten mit der App.Parameter-Klasse

Erstellen Sie einen Parameter mit dem „Tabellennavigator“

Bearbeiten Sie einen Parameter über „Optionen“

Entwicklertools-Panel auf InterSystems IRIS

Beispiel 2: Global über den Link „Verlauf“ anzeigen

Entwicklertools-Panel auf InterSystems IRIS

Graphen

Inspiriert durch den Artikel [9] und um das Wachstum von Datenbanken zu visualisieren, wurde eine Seite erstellt, die ein monatliches Diagramm der Datenbankgrößen anzeigt, die aus der iris.log-Datei (cconsole.log) mithilfe von „Expand“-Datensätzen rückwirkend vom aktuellen Tag erstellt wurden.

Als Beispiel wurde auch ein Ereignisgraph in InterSystems IRIS erstellt, der ebenfalls aus der Protokolldatei generiert wird:

Entwicklertools-Panel auf InterSystems IRIS

Links zu Materialien:

[1] Protokollierungssubsystem in Kasha
[2] Instant-Porridge – CRUD in Caché mit jqGrid erstellen
[3] Alternative SQL-Manager für das Caché DBMS
[4] Beispiele für das Generieren und Versenden von E-Mails mit dem Caché DBMS
[5] Cache + jQuery. Schneller Start
[6] Anwendungsbereitstellung
[7] UDL-Unterstützung
[8] Anzeigen von Globals im Caché Management Portal
[9] Prometheus mit Cache
[10] Lokalisierung im Caché DBMS

Vielen Dank an die Autoren dieser und anderer Artikel, die mir bei der Erstellung dieses Tools geholfen haben.

PS: Dieses Projekt befindet sich in der Entwicklung und viele Ideen wurden noch nicht umgesetzt. In naher Zukunft habe ich Folgendes vor:

1. Anwendungsvorlage auf dem Framework uikit
2. Automatische Dokumentation des Codeformats Doxegen mit Integration in CStudio

Source: habr.com

Kommentar hinzufügen