Panel de herramientas adicionales para el desarrollador en InterSystems IRIS

Un panel de herramientas adicionales para monitorear e investigar errores de aplicación y soluciones de integración en la plataforma de datos InterSystems IRIS, la plataforma de integración Ensemble y Caché DBMS, o la historia de otra bicicleta.

En este artículo quiero hablar sobre una aplicación que, junto con las herramientas administrativas estándar, uso a diario para monitorear aplicaciones y soluciones de integración en la plataforma InterSystems IRIS y para encontrar errores cuando ocurren.
La solución incluye ver y editar matrices globales, ejecutar consultas (incluyendo JDBC / ODBC), enviar resultados de búsqueda por correo electrónico en forma de archivos XLS archivados. Ver objetos de clase con la capacidad de editar. Algunas gráficas simples de los protocolos del sistema.

Esta es una aplicación CSP basada en jQuery-UI , chart.js , jsgrid.js
Si está interesado, pido un corte y un repositorio .

Todo comenzó con un estudio sobre cómo registrar cambios de objetos en InterSystems IRIS, Ensemble y Caché DBMS.

Después de leer un gran artículo sobre esto, bifurqué el proyecto . y comenzó a terminarlo por sus necesidades.

El resultado es una solución que se implementa como un panel de la subclase% CSP.Util.Pane, en la que hay una ventana principal para comandos y un botón Ejecutar, además de configuraciones para refinamientos para comandos.

Al ingresar "?" obtenemos una breve descripción de estos comandos:



Globales

Mi equipo más frecuente está viendo lo global. Por lo general, este es el protocolo global al depurar su propio proyecto o el de otra persona. Se puede ver en el orden inverso, así como filtrando tanto el enlace como los datos. Los nodos encontrados se pueden editar y eliminar:



Puede eliminar todo el global escribiendo el comando después del nombre menos ^ logMSW-
Pero solo los globales que comienzan con ^ log (globals de protocolo) se pueden eliminar de esta manera, es decir Restricción implementada contra la eliminación accidental.

Si ingresa "*" después del nombre, obtenemos una lista de globales con características adicionales. El segundo "*" - agregará un nuevo campo "MB asignado", y un asterisco más - "MB usado". Esta combinación de dos informes y separación en "estrellas" se realiza para dividir el informe a menudo largo en bloques ocupados de grandes globals.



Desde esta placa, puede hacer clic en los enlaces activos para ver el global en sí mismo o para verlo / editarlo de manera estándar desde el portal de administración haciendo clic en el campo Permiso en R o W.

Consultas

Convertir informe a formato Excel

La segunda función, en términos de frecuencia de uso, es la ejecución de consultas. Para hacer esto, ingresamos la instrucción sql como un comando.

Lo principal que me bastó en el Portal de administración del sistema estándar fue ejecutar consultas en fuentes JDBC / ODBC configuradas en el DBMS y generar los resultados en formato XLS, archivar y enviar el archivo a un correo electrónico. Para hacer esto, en mi herramienta, antes de ejecutar el comando, necesito habilitar la casilla de verificación "Cargar en archivo Excel".

Esta característica me ahorra mucho tiempo en la rutina diaria, e integro con éxito módulos ya preparados en nuevas aplicaciones y soluciones de integración.



Pero para esto, primero debe configurar la ruta para crear archivos en el servidor y las credenciales del usuario y el servidor de correo, para esto, a su vez, debe editar los nodos de la configuración global ^ ^ App.Setting.



Guardar informes a nivel mundial

A menudo se requiere guardar los resultados de la ejecución del informe en el global. Para hacer esto, aplico el procedimiento:
Para JDBC:## class (App.sys) .SqlToDSN
Para ODBC:## class (App.sys) .GuardarGateway
Para sentencias SQL:## class (App.sys) .SaveSQL
Para consulta:## class (App.sys) .SaveQuery

Por ejemplo, si en el panel el comando
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
guardaremos el resultado de la solicitud para contar el uso de licencias en la matriz ^ GN, y puede ver lo que se guardó en el panel con el comando: result ^GN("%SYSTEM.License:Counts",0)



Módulos de funciones aumentadas

Y la segunda mejora, que simplificó enormemente y automatizó mi trabajo, es la implementación de la capacidad de ejecutar módulos especialmente escritos durante la formación de cada línea de consulta. Por lo tanto, sobre la marcha, de una vez, puedo incorporar nuevas funcionalidades en el informe, por ejemplo, enlaces activos para operaciones adicionales en los datos.

Ejemplo 1: trabajar con la clase App.Parameter

Crear un parámetro a través del navegador de tablas

Editar parámetro a través de "Parámetros"



Ejemplo 2: Ver el global a través del enlace "Historial"



Gráficos

Impresionado por el artículo [9] y para visualizar el crecimiento de las bases de datos, se creó una página que muestra un gráfico mensual de tamaños de bases de datos creados usando el archivo iris.log (cconsole.log) usando registros "Expandir" retrospectivamente desde el día actual.

Por ejemplo, se ha creado un calendario de eventos en InterSystems IRIS, que también está formado por el archivo de protocolo:



Enlaces a materiales:

[1] subsistema de registro en Kas
[2] Gachas instantáneas - Hacer CRUD en caché con jqGrid
[3] Administradores de SQL alternativos para Caché DBMS
[4] Ejemplos de generación y envío de correo electrónico utilizando Caché DBMS
[5] Caché + jQuery. Inicio rápido
[6] Implementación de aplicaciones
[7] soporte UDL
[8] Ver globales en el portal de gestión de bases de datos de Caché
[9] Prometeo con caché
[10] Localización en el DBMS de Caché

Agradezco a los autores de estos y otros artículos que me ayudaron a crear esta herramienta.

PD Este proyecto se está desarrollando y muchas ideas aún no se han implementado. En un futuro próximo planeo hacer:

1. Plantilla de aplicación en el marco uikit
2. Código de autodocumentación en formato Doxegen con integración en CStudio

Source: https://habr.com/ru/post/es436042/


All Articles