Un pannello di strumenti aggiuntivi per monitorare e indagare sugli errori nelle applicazioni e nelle soluzioni di integrazione sulla piattaforma dati InterSystems IRIS, sulla piattaforma di integrazione Ensemble e sul DBMS Caché, o la storia di un'altra bicicletta.
In questo articolo voglio parlare dell'applicazione che, insieme agli strumenti di amministrazione standard, utilizzo ogni giorno per monitorare applicazioni e soluzioni di integrazione sulla piattaforma InterSystems IRIS e trovare errori quando si verificano.
La soluzione include la visualizzazione e la modifica di array globali, l'esecuzione di query (incluso JDBC/ODBC) e l'invio dei risultati della ricerca tramite e-mail come file XLS compressi. Visualizza oggetti di classe con la possibilità di modificarli. Diversi semplici grafici per i protocolli di sistema.
Questa è un'applicazione CSP basata su
Se sei interessato, vedi sotto e in
Tutto è iniziato studiando la questione di come registrare le modifiche agli oggetti in InterSystems IRIS, Ensemble e Caché DBMS.
Dopo aver letto
La soluzione risultante viene implementata come sottoclasse del pannello di %CSP.Util.Pane, che dispone di una finestra di comando principale e di un pulsante Esegui, oltre a impostazioni di perfezionamento dei comandi.
Quando inserisci "?" otteniamo una breve descrizione di questi comandi:
Globali
Il mio comando più comune è visualizzare il file global. Di norma, questo è un protocollo globale durante il debug del proprio progetto o di quello di qualcun altro. È possibile visualizzarlo in ordine inverso, nonché applicando un filtro sia al collegamento che ai dati. I nodi trovati possono essere modificati ed eliminati:
Puoi eliminare l'intero globale inserendo meno ^logMSW- nel comando dopo il nome.
Ma in questo modo puoi eliminare solo i globali che iniziano con ^log (protocollo globali), ad es. È stata implementata una restrizione contro la cancellazione accidentale.
Se inserisci "*" dopo il nome, otterrai un elenco di globali con caratteristiche aggiuntive. Il secondo "*" aggiungerà un nuovo campo "MB allocati" e un altro asterisco sarà "MB utilizzati". Questa combinazione di due report e la divisione in "asterischi" viene eseguita per dividere il report, spesso di lunga durata, in blocchi occupati delle grandi globali.
Da questa tabella è possibile seguire i collegamenti attivi per visualizzare il globale stesso o per visualizzarlo/modificarlo in modo standard dal portale di gestione facendo clic su R o W nel campo Autorizzazione.
richieste
Conversione di un report in formato Excel
La seconda funzione utilizzata più frequentemente è l'esecuzione delle query. Per fare ciò, inserisci l'istruzione sql come comando.
La cosa principale che mi bastava nel System Management Portal standard era l'esecuzione di query sulle origini JDBC/ODBC configurate nel DBMS e l'output dei risultati in formato XLS, l'archiviazione e l'invio del file tramite e-mail. Per fare ciò, nel mio strumento, prima di eseguire il comando, devi abilitare la casella di controllo "Scarica in file Excel".
Questa funzionalità mi fa risparmiare molto tempo nella mia routine quotidiana e integro con successo moduli già pronti in nuove applicazioni e soluzioni di integrazione.
Ma per fare ciò, devi prima configurare il percorso per la creazione dei file sul server e le credenziali dell'utente e del server di posta, per questo, a sua volta, devi modificare i nodi delle impostazioni globali del programma ^%App.Setting .
Salvataggio di report a livello globale
Molto spesso è necessario salvare i risultati dell'esecuzione del report a livello globale. Per fare ciò utilizzo le seguenti procedure:
Per JDBC:
##class(App.sys).SqlToDSN
Per ODBC:
##class(App.sys).SaveGateway
Per le espressioni SQL:
##class(App.sys).SaveSQL
Per la domanda:
##class(App.sys).SaveQuery
Ad esempio, se nel pannello viene visualizzato il comando
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Salviamo il risultato della richiesta di conteggio dell'utilizzo della licenza nell'array ^GN, e potrai vedere cosa è stato salvato nel pannello con il comando: result ^GN("%SYSTEM.License:Counts",0)
Moduli di funzionalità aumentate
E il secondo miglioramento, che ha notevolmente semplificato e automatizzato il mio lavoro, è l'implementazione della possibilità di eseguire moduli scritti appositamente durante la generazione di ciascuna riga di query. In questo modo posso creare al volo nuove funzionalità nel report in un solo passaggio, ad esempio collegamenti attivi per operazioni aggiuntive sui dati.
Esempio 1: utilizzo della classe App.Parameter
Creare un parametro utilizzando il "Navigatore tabella"
Modifica un parametro tramite "Opzioni"
Esempio 2: visualizzazione del globale tramite il collegamento "Cronologia".
Grafici
Ispirandosi all'articolo [9] e per visualizzare la crescita dei database, è stata creata una pagina che mostra un grafico mensile delle dimensioni del database creato dal file iris.log (cconsole.log) utilizzando i record "Espandi" retrospettivamente dal giorno corrente.
Ad esempio, in InterSystems IRIS è stato creato anche un grafico degli eventi, anch'esso generato dal file di protocollo:
Collegamenti ai materiali:
,
,
,
,
,
,
,
,
,
Grazie agli autori di questi e altri articoli che mi hanno aiutato a creare questo strumento.
PS Questo progetto è in fase di sviluppo e molte idee non sono ancora state implementate. Nel prossimo futuro ho intenzione di fare:
1. Modello di domanda sul quadro
2. Documentazione automatica del formato del codice
Fonte: habr.com