Eine Reihe zusätzlicher Tools zur Überwachung und Untersuchung von Anwendungsfehlern und Integrationslösungen auf der InterSystems IRIS-Datenplattform, der Ensemble-Integrationsplattform und Caché DBMS oder der Geschichte eines anderen Fahrrads.
In diesem Artikel möchte ich über eine Anwendung sprechen, die ich zusammen mit Standard-Verwaltungstools täglich 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 Senden von E-Mail-Suchergebnissen in Form von archivierten XLS-Dateien. Zeigen Sie Klassenobjekte mit der Möglichkeit zum Bearbeiten an. Einige einfache Grafiken der Systemprotokolle.
Dies ist eine CSP-Anwendung, die auf
jQuery-UI ,
chart.js ,
jsgrid.js basiertBei Interesse bitte ich um einen Schnitt und ein
Repository .
Alles begann mit einer Studie zum Protokollieren von Objektänderungen in InterSystems IRIS, Ensemble und Caché DBMS.
Nachdem ich einen
großartigen Artikel darüber gelesen hatte, gabelte ich das
Projekt auf . und begann es für seine Bedürfnisse zu beenden.
Das Ergebnis ist eine Lösung, die als Bedienfeld der Unterklasse% CSP.Util.Pane implementiert wird, in der ein Hauptfenster für Befehle und eine Schaltfläche Ausführen sowie Einstellungen für Verfeinerungen für Befehle vorhanden sind.
Bei der Eingabe von "?" Wir erhalten eine kurze Beschreibung dieser Befehle:
GlobalsMein häufigstes Team ist das Betrachten der globalen. In der Regel ist dies das globale Protokoll beim Debuggen Ihres eigenen Projekts oder des Projekts eines anderen. Sie kann in umgekehrter Reihenfolge sowie durch Filtern des Links und der Daten angezeigt werden. Gefundene Knoten können bearbeitet und gelöscht werden:

Sie können die gesamte globale Datei löschen, indem Sie den Befehl nach dem Namen minus ^ logMSW- eingeben.
Auf diese Weise können jedoch nur Globals gelöscht werden, die mit ^ log beginnen (Protokollglobals), d. H. Einschränkung gegen versehentliches Löschen implementiert.
Wenn Sie nach dem Namen "*" eingeben, erhalten wir eine Liste der Globals mit zusätzlichen Merkmalen. Das zweite "*" - fügt ein neues Feld "Allocated MB" und ein weiteres Sternchen - "Used MB" hinzu. Diese Kombination aus zwei Berichten und der Trennung in "Sterne" dient dazu, den oft lang geformten Bericht über besetzte Blöcke großer Globals zu teilen.

Auf dieser Tafel können Sie auf aktive Links klicken, um die globale selbst anzuzeigen oder sie auf standardmäßige Weise über das Verwaltungsportal anzuzeigen / zu bearbeiten, indem Sie in das Feld Berechtigung auf R oder W klicken.
AnfragenKonvertieren Sie den Bericht in das Excel-FormatDie zweite Funktion in Bezug auf die Verwendungshäufigkeit ist die Ausführung von Abfragen. Dazu geben wir die SQL-Anweisung als Befehl ein.
Die Hauptsache, die mir im Standard-Systemverwaltungsportal ausreichte, war, Abfragen für im DBMS konfigurierte JDBC / ODBC-Quellen auszuführen und die Ergebnisse im XLS-Format auszugeben, die Datei zu archivieren und per E-Mail zu senden. Dazu muss ich in meinem Tool vor dem Ausführen des Befehls das Kontrollkästchen "In Excel-Datei hochladen" aktivieren.
Diese Funktion spart mir viel Zeit im Alltag und ich integriere fertige Module erfolgreich in neue Anwendungen und Integrationslösungen.

Dazu müssen Sie jedoch zunächst den Pfad zum Erstellen von Dateien auf dem Server sowie die Anmeldeinformationen des Benutzers und des Mailservers konfigurieren. Dazu müssen Sie wiederum die Knoten der globalen Einstellungen bearbeiten ^^ App.Setting.
Berichte global speichernSehr oft ist es erforderlich, die Ergebnisse der Berichtsausführung global zu speichern. Dazu wende ich das Verfahren an:
Zum Beispiel, wenn im Panel der Befehl
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Speichern Sie das Ergebnis der Anforderung zum Zählen der Verwendung von Lizenzen im Array ^ GN, und Sie können sehen, was im Bedienfeld mit dem folgenden Befehl gespeichert wurde:
result ^GN("%SYSTEM.License:Counts",0)
Erweiterte FunktionsmoduleUnd die zweite Verbesserung, die meine Arbeit stark vereinfacht und automatisiert hat, ist die Implementierung der Fähigkeit, speziell geschriebene Module während der Bildung jeder Abfragezeile auszuführen. So kann ich im Handumdrehen auf einmal neue Funktionen in den Bericht einbetten, z. B. aktive Links für zusätzliche Vorgänge mit Daten.
Beispiel 1: Arbeiten mit der App.Parameter-Klasse
Erstellen Sie einen Parameter über den Tabellennavigator
Parameter über "Parameter" bearbeiten

Beispiel 2: Anzeigen der globalen über den Link "Verlauf"
GrafikenBeeindruckt von dem Artikel [9] und um das Wachstum von Datenbanken zu visualisieren, wurde eine Seite erstellt, auf der ein monatliches Diagramm der Datenbankgrößen angezeigt wird, die mit der Datei iris.log (cconsole.log) erstellt wurden.
Beispielsweise wurde in InterSystems IRIS ein Ereignisplan erstellt, der auch aus der Protokolldatei besteht:

Links zu Materialien:
[1]
Protokollierungssubsystem in Kas[2]
Instant Porridge - CRUD in Caché mit jqGrid herstellen[3]
Alternative SQL-Manager für Caché DBMS[4]
Beispiele zum Generieren und Senden von E-Mails mit Caché DBMS[5]
Cache + jQuery. Schnellstart[6]
Anwendungsbereitstellung[7]
UDL-Unterstützung[8]
Zeigen Sie Globals im Caché Database Management Portal an[9]
Prometheus mit Caché[10]
Lokalisierung im Caché-DBMSIch danke den Autoren dieser und anderer Artikel, die mir bei der Erstellung dieses Tools geholfen haben.
PS Dieses Projekt entwickelt sich und viele Ideen wurden noch nicht umgesetzt. In naher Zukunft habe ich vor:
1. Anwendungsvorlage auf dem
UIKIT- Framework
2. Automatische Dokumentation von Code im Doxegen-Format mit Integration in CStudio