Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

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 jQuery-UI, grafico.js, jsgrid.js
Se sei interessato, vedi sotto e in deposito.

Tutto è iniziato studiando la questione di come registrare le modifiche agli oggetti in InterSystems IRIS, Ensemble e Caché DBMS.

Dopo aver letto articolo eccellente a proposito di questo, ho biforcato progetto. e cominciò a finirlo per le sue necessità.

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:

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

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:

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

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.

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

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.

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

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 .

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

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)

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

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"

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

Esempio 2: visualizzazione del globale tramite il collegamento "Cronologia".

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

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:

Barra degli strumenti per sviluppatori aggiuntiva su InterSystems IRIS

Collegamenti ai materiali:

, sottosistema di registrazione in Kasha
, Porridge istantaneo: eseguire CRUD in Caché utilizzando jqGrid
, Gestori SQL alternativi per il DBMS Caché
, Esempi di generazione e invio di e-mail utilizzando il DBMS Caché
, Cache+jQuery. Inizio veloce
, Distribuzione dell'applicazione
, Supporto UDL
, Visualizzazione dei globali nel portale di gestione della cache
, Prometeo con Cache
, Localizzazione nel DBMS Caché

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 uikit
2. Documentazione automatica del formato del codice Doxegen con integrazione in CStudio

Fonte: habr.com

Aggiungi un commento