Un panel d'outils complémentaires pour surveiller et investiguer les erreurs dans les applications et solutions d'intégration sur la plateforme de données InterSystems IRIS, la plateforme d'intégration Ensemble et le SGBD Caché, ou l'histoire d'un autre vélo.
Dans cet article, je souhaite parler de l'application que, avec les outils d'administration standards, j'utilise quotidiennement pour surveiller les applications et les solutions d'intégration sur la plateforme InterSystems IRIS et trouver les erreurs lorsqu'elles se produisent.
La solution comprend l'affichage et la modification de tableaux globaux, l'exécution de requêtes (y compris JDBC/ODBC) et l'envoi des résultats de recherche par courrier électronique sous forme de fichiers XLS compressés. Affichez les objets de classe avec la possibilité de les modifier. Plusieurs graphiques simples pour les protocoles système.
Il s'agit d'une application CSP basée sur
Si vous êtes intéressé, veuillez voir ci-dessous et dans
Tout a commencé par l'étude de la question de savoir comment enregistrer les modifications apportées aux objets dans InterSystems IRIS, Ensemble et le SGBD Caché.
Après avoir lu
La solution résultante est implémentée en tant que sous-classe de panneau de %CSP.Util.Pane, qui possède une fenêtre de commande principale et un bouton Exécuter, ainsi que des paramètres de raffinement des commandes.
Quand vous entrez "?" nous obtenons une brève description de ces commandes :
Mondiales
Ma commande la plus courante consiste à afficher le fichier global. En règle générale, il s'agit d'un protocole global lors du débogage de votre propre projet ou de celui de quelqu'un d'autre. Vous pouvez l'afficher dans l'ordre inverse, ainsi qu'en appliquant un filtre à la fois au lien et aux données. Les nœuds trouvés peuvent être modifiés et supprimés :
Vous pouvez supprimer l'intégralité du global en entrant moins ^logMSW- dans la commande après le nom.
Mais de cette façon, vous ne pouvez supprimer que les globaux commençant par ^log (globaux de protocole), c'est-à-dire Une restriction contre la suppression accidentelle a été mise en place.
Si vous entrez « * » après le nom, vous obtiendrez une liste de globales avec des caractéristiques supplémentaires. Le deuxième "*" ajoutera un nouveau champ "Mo alloués", et un autre astérisque sera "Mo utilisés". Cette combinaison de deux rapports et la division en "astérisques" ont pour but de diviser le rapport souvent long en blocs occupés. des grandes planètes.
À partir de ce tableau, vous pouvez suivre les liens actifs pour afficher le global lui-même ou pour le visualiser/modifier de la manière standard depuis le portail de gestion en cliquant sur R ou W dans le champ Autorisation.
demandes
Conversion d'un rapport au format Excel
La deuxième fonction la plus fréquemment utilisée est l’exécution de requêtes. Pour ce faire, entrez l'instruction sql sous forme de commande.
La principale chose qui me suffisait dans le portail de gestion de système standard était d'exécuter des requêtes sur les sources JDBC/ODBC configurées dans le SGBD et d'afficher les résultats au format XLS, d'archiver et d'envoyer le fichier par e-mail. Pour ce faire, dans mon outil, avant d'exécuter la commande, vous devez cocher la case « Télécharger dans un fichier Excel ».
Cette fonctionnalité me fait gagner beaucoup de temps dans ma routine quotidienne et j'intègre avec succès des modules prêts à l'emploi dans de nouvelles applications et solutions d'intégration.
Mais pour ce faire, vous devez d'abord configurer le chemin de création de fichiers sur le serveur et les informations d'identification de l'utilisateur et du serveur de messagerie ; pour cela, vous devez à votre tour modifier les nœuds des paramètres globaux du programme ^%App.Setting .
Enregistrement des rapports à l'échelle mondiale
Très souvent, il est nécessaire de sauvegarder globalement les résultats de l’exécution du rapport. Pour ce faire, j'utilise les procédures suivantes :
Pour JDBC :
##class(App.sys).SqlToDSN
Pour ODBC :
##class(App.sys).SaveGateway
Pour les expressions SQL :
##class(App.sys).SaveSQL
Pour la requête :
##class(App.sys).SaveQuery
Par exemple, si dans le panneau la commande
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Enregistrons le résultat de la demande de comptage d'utilisation de licence dans le tableau ^GN, et vous pourrez voir ce qui a été enregistré dans le panneau avec la commande : result ^GN("%SYSTEM.License:Counts",0)
Modules de fonctionnalités augmentées
Et la deuxième amélioration, qui a grandement simplifié et automatisé mon travail, est la mise en œuvre de la possibilité d'exécuter des modules spécialement écrits lors de la génération de chaque ligne de requête. De cette façon, je peux créer de nouvelles fonctionnalités dans le rapport à la volée en un seul passage, par exemple des liens actifs pour des opérations supplémentaires sur les données.
Exemple 1 : Travailler avec la classe App.Parameter
Créer un paramètre à l'aide du « Table Navigator »
Modifier un paramètre via « Options »
Exemple 2 : Visualisation du global via le lien « Historique »
Graphiques
Inspirée de l'article [9] et pour visualiser la croissance des bases de données, une page a été créée qui affiche un graphique mensuel des tailles de bases de données créées à partir du fichier iris.log (cconsole.log) en utilisant les enregistrements « Développer » rétrospectivement à partir de la journée en cours.
A titre d'exemple, un graphe d'événements a également été créé dans InterSystems IRIS, qui est également généré à partir du fichier de protocole :
Liens vers des matériaux:
Merci aux auteurs de ces articles et d'autres qui m'ont aidé à créer cet outil.
PS Ce projet est en développement et de nombreuses idées n'ont pas encore été mises en œuvre. Dans un futur proche, j'ai l'intention de faire :
1. Modèle de candidature sur le framework
2. Documentation automatique du format de code
Source: habr.com