Un panel de herramientas adicionales para monitorear e investigar errores en aplicaciones y soluciones de integración en la plataforma de datos InterSystems IRIS, la plataforma de integración Ensemble y el DBMS Caché, o la historia de otra bicicleta.
En este artículo quiero hablar sobre la aplicación que, junto con las herramientas de administración estándar, uso todos los días para monitorear aplicaciones y soluciones de integración en la plataforma InterSystems IRIS y encontrar errores cuando ocurren.
La solución incluye ver y editar matrices globales, ejecutar consultas (incluidos JDBC/ODBC) y enviar resultados de búsqueda por correo electrónico como archivos XLS comprimidos. Ver objetos de clase con la capacidad de editar. Varios gráficos simples para protocolos del sistema.
Esta es una aplicación CSP basada en
Si está interesado, consulte a continuación y en
Todo comenzó estudiando la cuestión de cómo registrar cambios en objetos en InterSystems IRIS, Ensemble y Caché DBMS.
Habiendo leído
La solución resultante se implementa como una subclase de panel de %CSP.Util.Pane, que tiene una ventana principal para comandos y un botón Ejecutar, además de configuraciones de refinamiento para los comandos.
Cuando usted entre "?" obtenemos una breve descripción de estos comandos:
Globales
Mi comando más común es ver el global. Como regla general, este es un protocolo global al depurar su propio proyecto o el de otra persona. Puedes verlo en orden inverso, así como aplicando un filtro tanto al enlace como a los datos. Los nodos encontrados se pueden editar y eliminar:
Puede eliminar todo el global ingresando menos ^logMSW- en el comando después del nombre.
Pero de esta manera solo puedes eliminar globales que comiencen con ^log (globales de protocolo), es decir. Se ha implementado una restricción contra la eliminación accidental.
Si ingresa "*" después del nombre, obtendrá una lista de globales con características adicionales. El segundo "*" agregará un nuevo campo "MB asignados" y otro asterisco será "MB usados". Esta combinación de dos informes y la división en "asteriscos" se realiza para dividir el informe, que a menudo es largo, en bloques ocupados. de grandes globales.
Desde esta tabla puede seguir enlaces activos para ver el global en sí o verlo/editarlo de la forma estándar desde el portal de administración haciendo clic en R o W en el campo Permiso.
solicitudes
Convertir un informe a formato Excel
La segunda función más utilizada es la ejecución de consultas. Para hacer esto, ingrese la declaración sql como comando.
Lo principal que me bastó en el Portal de administración del sistema estándar fue realizar consultas en fuentes JDBC/ODBC configuradas en el DBMS y generar los resultados en formato XLS, archivar y enviar el archivo por correo electrónico. Para hacer esto, en mi herramienta, antes de ejecutar el comando, debe habilitar la casilla de verificación "Descargar a un archivo de Excel".
Esta función me ahorra mucho tiempo en mi rutina diaria e integro con éxito módulos ya preparados en nuevas aplicaciones y soluciones de integración.
Pero para hacer esto, primero debe configurar la ruta para crear archivos en el servidor y las credenciales del usuario y del servidor de correo, para esto, a su vez, debe editar los nodos de la configuración global del programa ^%App.Setting .
Guardar informes globalmente
Muy a menudo es necesario guardar los resultados de la ejecución del informe de forma global. Para ello utilizo los siguientes procedimientos:
Para JDBC:
##clase(App.sys).SqlToDSN
Para ODBC:
##clase(App.sys).SaveGateway
Para expresiones SQL:
##clase(App.sys).SaveSQL
Para consulta:
## clase (App.sys). Guardar consulta
Por ejemplo, si en el panel el comando
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Guardemos el resultado de la solicitud de recuento de uso de licencia en la matriz ^GN y podrá ver lo que se guardó en el panel con el comando: result ^GN("%SYSTEM.License:Counts",0)
Módulos de funcionalidad aumentada
Y la segunda mejora, que simplificó y automatizó enormemente mi trabajo, es la implementación de la capacidad de ejecutar módulos especialmente escritos al generar cada línea de consulta. De esta manera puedo crear nuevas funciones en el informe sobre la marcha en una sola pasada, por ejemplo, enlaces activos para operaciones adicionales con datos.
Ejemplo 1: trabajar con la clase App.Parameter
Cree un parámetro usando el "Navegador de tablas"
Editar un parámetro a través de "Opciones"
Ejemplo 2: Ver el global a través del enlace "Historial"
Gráficos
Inspirándose en 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 los tamaños de las bases de datos creadas a partir del archivo iris.log (cconsole.log) utilizando registros “Expandir” retrospectivamente desde el día actual.
A modo de ejemplo, también se ha creado un gráfico de eventos en InterSystems IRIS, que también se genera a partir del archivo de protocolo:
Enlaces a materiales:
[ 2 ]
[ 3 ]
[ 4 ]
[ 5 ]
[ 6 ]
[ 7 ]
[ 8 ]
[ 9 ]
[ 10 ]
Gracias 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.
2. Autodocumentación del formato del código.
Fuente: habr.com