Diagnostica Database

Top  Previous  Next

E' stato introdotto un Servizio Windows chiamato Solari - DBService il cui compito è verifcare la consistenza del Database Solari. Tale servizio effettua dei controlli ciclici automatici e ne memorizza l'esito. Tale esito, se muniti di

privilegio è visualizzabile attraverso StartWeb ed è inoltre possibile effettuare il controllo del Database a comando. Per poter lanciare il comando è necessario che il servizio sia installato nella medesima macchina.

 

Installazione e Disinstallazione Manuale

 

Singolo Database

Per installare il servizio windows manualmente è necessario posizionarsi nella cartella in cui è presente il servizio DBService.exe.

 

Se è presente installutil.exe :

       e

               installutil DBService.exe

 

Se NON è presente installutil.exe :

       spostarsi nella cartella:

 

               C:\Windows\Microsoft.NET\Framework\v4.0.30319>

 

       ed inserire il comando:

 

               installutil "path-to-exe\DBService.exe"

 

Dove per "path-to-exe" si intende l'intero percorso fino all'eseguibile.

Per disinstallare il servizio - accertarsi prima che sia chiuso - eseguire uno dei due comandi a seconda dei due casi soprariportati:

       

installutil /u DBService.exe
installutil /u "path-to-exe\DBService.exe"

 

Multi Database

È possibile installare molteplici volte lo stesso servizio, nel caso dell’esistenza di più istanze di StartWeb. Affinchè ciò sia possibile è necessario avere a disposizione di n copie della cartella contenente il DBService. I file DBService.exe andranno opportunamente rinominati (es. DBService2.exe)

Aprire il prompt dei comandi windows in modalità amministratore, e lanciare i comandi:

 

sc create DBServicen binPath= "percorso nuova cartella n\DBServicen.exe" /name Solari - DBServicen
sc config DBServicen displayName= "Solari - DBServicen"
sc description DBServicen "Solari - Controllo del database"

 

(si notino gli spazi successivi agli =, la loro dimenticanza causerà un errore del tipo:

NOTA: il nome dell'opzione include il segno di uguale.

          E' necessario inserire uno spazio tra il segno di uguale e il valore. )

 

Iterare questi tre passi per gli n DBService che si desidera installare, ricordandosi di sostituire opportunamente le n con un numero (lo stesso nei tre comandi) e il relativo percorso all’eseguibile della nuova cartella (si ricorda che tali percorsi devono essere distinti).

 

Al termine si avranno gli n servizi installati e pronti per essere configurati. Sarà necessario impostare manualmente l'avvio automatico dei vari servizi.

 

Per disinstallare i servizi - accertarsi prima che siano chiusi - aprire il prompt dei comandi windows in modalità amministratore e lanciare i comandi:

 

sc delete DBServicen

 

sostituendo opportunamente la n con il numero relativo al servizio soggetto a disinstallazione

 

Configurazione

 

E' necessario configurare alcuni parametri. Tutte le istanze di DBService installate devo essere chiuse.

E' possibile farlo in due modi diversi:

 

utilizzare il tool grafico del servizio. In tal caso aprire (doppio click) DBService.exe e selezionare l'area configurazione. In caso di errore è possibile ripristinare i valori presenti al momento dell'apertura del tool.
modificare il file DBService.exe.config manualmente. In tal caso cercare la sezione appSettings al cui interno sono conenute le definizioni dei cinque parametri da configurare. Di questi va modificato il campo value.

 

I parametri da modificare sono:

 

database: tipologia di database Oracle o SQLServer;
connectionstringBIZ e connectionstringPRV: stringhe di connessione al database BIZ e PRV (lasciare la password vuota). Esempio di stringhe di connessione:

       Oracle:                Data Source=ORCL;User Id=DBSTARTBIZ;Password=

       SQLServer:        Data Source=SVILUPPO\SQLExpress;Initial Catalog=DbStartBIZ;User Id=solari;Password=

 

nota bene: nel campo Data Source va inserito il nome del server Initial Catalog va inserito il nome del database (gli stessi presenti del .ini)

passwordCifrata: password cifrata per la connessione ai database, la stessa presente nei file .ini di configurazione di TWClient, TWServer e StartUtil;
interval: intervallo di tempo in secondi. Stabilisce ogni quanto tempo effettuare il controllo del database;
namedPipeName: nome della pipe relativa al servizio;

 

Si noti che l'intervallo di tempo non può essere inferiore di 600 secondi (10 minuti). Al termine salvare le modifiche ed avviare il servizio.

 

Il nome della pipe va riportata anche nella corrispettiva istanza di StartWeb. È settabile attraverso al pagina di configurazione (prima del login) come da immagine:

 

                            SW-DB

 

E' inoltre possibile effettuare un test di connessione ai due database, cliccando il tasto Test Connessione ai DB, affianco verrà visualizzato l'esito relativo ai due.

Interfaccia Utente

 

Se il privilegio è attivo (StartUtil, sezione Diagnostica Database) allora da StartWeb sarè sempre visibile nel header, in alto a destra un'icona con un menu a tendina che riporta le informazioni sul controllo del database.

L'icona verde fissa indica che il database è in uno stato corretto, l'icona rossa lampeggiante indica che il database è in uno stato di errore, mente l'icona gialla lampeggiante indica che c'è stato un'errore nel controllo del database.

 

alert-ok

   alert-warn

alert-err

 

Cliccando sull'icona si possono vedere alcune informazioni sul controllo, in particolare: l'esito del controllo, la data in qui è stato eseguito l'ultimo controllo, e l'utente che ha effettuato il controllo: (auto) indica il controllo automatico eseguito dal servizio, (manuale) indica il controllo richiesto da parte di un utente.

 

 

drop-diff

 

Il caso di errore nel controllo o di inconsistenza viene ulteriormente notificato attraverso un widget nella dashboard.

 

widget-warn

 

widget-err

 

E' inoltre possibile vedere le differenze rilevate. Cliccando su "Visualizza Differenze" si apre una pagina dedicata alla diagnostica del database. Nel caso di database inconsistente, la schermata avrà questa forma:

 

diff-ex

 

Le tabelle soggette a discrepanze sono segnalate in grassetto e affianco hanno riportato il tipo di errore.

 

Dati mancanti in PRV: segnala che nella tabella presente nel database Private ci sono meno record che nella corrispettiva tabella in Business;
Dati mancanti in BIZ: segnala che nella tabella presente nel database Private ci sono più record che nella corrispettiva tabella in Business;
Dati diversi: segnala che le tabelle hanno lo stesso numero di record, ma alcuni di questi possono essere diversi;
Errore: dato da qualche errore interno del sistema, in tal caso provare a ricaricare la pagina e/o riefettuare il controllo.

 

Nell'immagine c'è un esempio in cui nella tabella ANAGRAFICO presente nel database Private, ossia la tabella ANAGRAFICO_DATI c'è un record in meno (rappresentato dall virgolette '' vuote), mentre nella tabella ANAGRAFICO

presente nel database business, ossia ANAGAFICO_ID c'è un record in più, in particolare è presente il record con ID=100 che in ANAGRAFICO_DATI non c'è. Mentre nelle tabelle UTENTI_DATI e UTENTI_ID c'è lo stesso numero di record,

ma uno di questi, USERNAME='resp' presente delle differenze con il suo corrispettivo.

 

Errori e Consigli

 

Possibili stati del database:

 

CONSISTENTE: casistica positiva e desiderata, in qui i due database sono perfettamente allineati.

 

INCONSISTENTE: casistica negativa, i due database non sono allineati. In tal caso è consigliato contattare immediatamente l'amministrazione e di evitare operazioni di inserimento e cancellazione di dati dal database, in quanto potrebbero avvenire parzialmente e/o non correttamente danneggiando i dati. Inoltre anche la lettura degli stessi potrebbe non essere corretta, quest'ultimo caso non danneggerebbe i dati, ma potrebbe affliggere solo la loro visualizzazione.

 

ERRORE: questa casistica non ha a che fare con i dati contenuti nel database, ma con parametri di configurazione o errori esterni al database, come ad esempio connessioni al database fallite, errori con la sincronizzazione don il servizio Solari-DBService, errori di timeout. Per correggere questo comportamento, verificare  i parametri di configurazione del serizio Solari-DBService e riprovare. Se dopo questi due tentativi ancora non dovesse funzionare contattare l'amministratore. Questa tipologia di errore, è innoqua, ma si consiglia comunque di prestare massima attenzione e di operare solo in presenza di icona verde.

 

DBSERVICE: questa casistica non ha a che fare con i dati contenuti nel database, ma con  il servizio Solari-DBService il quale non ha terminato il controllo. In particolare, la tabella contenente i dati realtivi al controllo di consistenza è vuota, il che significa che il controllo non è mai stato terminato. Per correggere questo comportamento, verificare  i parametri di configurazione del serizio Solari-DBService, verificare la sua esecuzione, successivamente o attendere lo scadere dell'intervallo di controllo impostato o effettuare un controllo manuale utilizzando StartWeb oppure Check&In. Questa tipologia di errore, è innoqua, ma si consiglia comunque di prestare massima attenzione e di operare solo in presenza di icona verde.

 

ATTENZIONE: questa casistica non ha a che fare con i dati contenuti nel database, ma con  il servizio Solari-DBService il quale non ha effettauto il controllo. In particolare, non è stato effettuato il controllo allo scadere dell'intervallo di tempo prestabilito. Per correggere questo comportamento, verificare  i parametri di configurazione del serizio Solari-DBService, verificare la sua esecuzione, successivamente o attendere lo scadere dell'intervallo di controllo impostato o effettuare un controllo manuale utilizzando StartWeb oppure Check&In. Questa tipologia di errore, è innoqua, ma si consiglia comunque di prestare massima attenzione e di operare solo in presenza di icona verde.

 

Se il servizio non si avvia è possibile far partire il controllo manualmente, facendo doppio click su DBService.exe e selezionando l'area di gestione. Da qui lo si può anche fermare