Gestione DB "AreaGate"

Navigation:  Procedure > Generale - sistema >

Gestione DB "AreaGate"

Previous pageReturn to chapter overviewNext page

Per collegare il gestionale "AREA" con AREAGATE stiamo facendo uso di un database Postgres le cui tabelle sono gia' documentate in Base dati Postgres

 

Questa struttura simula quella già sviluppata per la sincronizzazione del db di frontiera.

 

Configurazioni di base

 

Le configurazioni di base da gestire sono:

 

Gruppo

Parametro

Note

abilita

attiva-areaapp

"Pulsante di accensione"

Questo parametro verrà replicato sulla tabella ARPAZIEN, campo RAZI_ATTIVA_SINCRO, in modo che in futuro sia possibile gestirlo direttamente da Areagate

areaapp

cod-azienda

Codice azienda

areaapp

email-segnalazioni-tecniche

Indirizzo Eurosystem2000 a cui inviare segnalazioni "gravi"

Non necessario, usando la nuova metodologia di invio notifiche

areaapp

email-segnalazioni-operative

Indirizzo dell'azienda a cui inviare informazioni da evidenziare

Non necessario, usando la nuova metodologia di invio notifiche

areaapp

db-conn-string

Stringa di connessione al database

areaapp

agg-postgres-online

Permette di abilitare o disabilitare l'aggiornamento in tempo reale, ovvero a seguito dell'aggiornamento di un oggetto

areaapp

aglancio-attivo

Permette di gestire in modo più indolore il trapasso dalla vecchia procedura alla nuova

NB: per ora il default a "N": quando saremo pronti per l'avvio delle procedure si potrà mettere a "S"

 


 

 

Pannello di controllo

 

Pannello dove è presente una griglia di controllo dei vari processi; una riga corrisponde al processo di sincronizzazione di una singola tabella, o di un insieme di tabelle che per la loro natura devono essere trattate insieme (es. documenti di magazzino).

 

Per ciascuna riga saranno presenti le informazioni:

 

Colonna

Contenuto

Modificabile?

Nome

Nome del processo

 

Descrizione

Descrizione breve del processo

 

Istanza

Questo numero generalmente viene lasciato a 0

Se diversificato permette di definire quanti e quali processi in parallelo possono essere eseguiti: ogni numero di istanza qui definito rappresenta un processo in parallelo

NB: per ogni istanza dovrà essere attivato un apposito processo di esecuzione

Si

Attivo?

Campo a valori fissi che permette di attivare/disattivare il singolo processo:

"N":Non attivo

"S":Attivo

Si

Direzione

Campo a valori fissi che permette di definire in quale direzione aggiornare, quando il processo è attivo

"I":Attivo solo "Import"

"E":Attivo solo "Export"

"T": Attivo tutto

NB: le modalità "I" e "E" valgono solo quando il processo è utilizzabile in entrambi i sensi

 

Timer

Tempo di attesa tra 2 schedulazioni dello stesso processo, in minuti.

Puo' andare da 1 a 99999999

Si

Forzo schedulazione

Se spuntato, permette di fare partire immediatamente la schedulazione di questo processo, una tantum

Si

Data/ora ultima schedulazione

Data/ora dell'ultima schedulazione del processo

 

Data/ora prossima schedulazione

Data/ora della prossima schedulazione pianificata

 

In corso?

Indica se il processo è correntemente in esecuzione

 

N.Errori

Numero di errori segnalati nell'ultima esecuzione

 

Messaggio

Ultimo messaggio di errore segnalato

 

Livello Log

Livello di log previsto sul processo

0: Vengono registrati solo gli errori

1...99999: segnalazioni standard, il cui livello è quello indicato

Si

Ultimo aggiornamento

Data/ora ultimo aggiornamento, utilizzato solo per i processi in cui è possibile l'export

Si

Limita righe

Se questo dato contiene un numero > 0, significa che l'elaborazione viene limitata alle prime "n" righe da sincronizzare.

Utile in fase di impostazione iniziale del sistema, quando si vuole eseguire il test della sincronizazione, o quando si vuole distribuire meglio la sincronizzazione senza lasciare in coda per troppo tempo le elaborazioni successive

Si

Limita errori

Se questo dato contiene un numero > 0, significa che l'elaborazione viene limitata alle prime "n" segnalazioni di errore.

Utile in fase di impostazione iniziale del sistema, quando si vuole eseguire il test della sincronizazione.

Si

 

La gestione dei processi sarà definita dall'insieme da:

ARPAZIEN - Azienda: record di controllo azienda, contiene le informazioni principali di gestione e controllo:

oSincronizzazione attiva per l'azienda (RAZI-SINCRO-ATTIVA)

oData/ora "keep-alive": questa data/ora sarà aggiornata continuamente dai processi di sincronizzazione, quando schedulati dall'apposito motore, e permetterà ad un demone esterno di controllare se la sincronizzazione, quando attiva, sta effettivamente funzionando.

ARPPROC - Processi di sincronizzazione (tabella di sistema presente sul db Postgres, univoca per tutte le aziende)

ARPSTPRC - Stato processi di sincronizzazione, che verrà gestita sull'ambiente di produzione o da una apposita funzione su AREAGATE.

 

Ricerca dati di accesso

 

Ogni programma che rientra in questa procedura, e che dovrà aprire il DB di Areagate, non dovrà cercare le configurazioni direttamente, ma interrogare un apposito sottoprogramma che restituirà la stringa di connessione da utilizzare.

Questa potrà essere anche passata in input dal programma chiamante: in questo caso il programma SW* la utilizzerà senza effettuare la chiamata.

 

Questo procedimento viene effettuato per potere in futuro prevedere un meccanismo di reindirizzamento del db in modo centralizzato, qualora fosse implementato.

Nota 31/10/2019: lo scopo è di fare in modo che un domani l'indirizzamento non dipenda dalle stesse configurazioni, o venga effettuato in modo diverso, semplicemente modificando il sottoprogramma.

 

Esecutore processi

 

I processi saranno eseguiti da uno specifico programma chiamato AGLANCIO, senza interfaccia, strutturato in modo che possa essere lanciato e rimanere residente, finchè il flag di attivazione azienda RAZI_ATTIVA_SINCRO non viene abbassato.

Il programma potrà essere lanciato con una istanza: scorrerà l'elenco dei processi collegati all'istanza e controllerà se è arrivato il momento dell'esecuzione prevista. Se si, lo eseguirà.

All'inizio di ogni ciclo, e prima dell'esecuzione di ogni processo aggiornerà data/ora "keep-alive" sull'azienda in elaborazione.

Nota 31/10/2019: In fase iniziale, AGLANCIO potrà essere eseguito anche da uno degli attuali SWA (es. SWA005), per evitare di dover attivare manualmente il nuovo processo su Z-CRON.

Inoltre AGLANCIO a regime verrà lanciato con un processo NON THIN, possibilimente da un eseguibile che gira come servizio sul server Windos, o dal Crontab su Linux

 

 

Caratteristiche di ogni singolo processo

 

Nessuna interfaccia o interazione con il video

Ricerca connessione DB: i dati di accesso dovranno essere restituiti da un apposito sottoprogramma

Gestione log di processo, con attivazione log in funzione del livello previsto

Ogni messaggio deve essere rediretto sul log usando l'apposita variabile di configurazione

Aggiornamento dei dati sulla tabella "Pannello di controllo"

Aggiornamento del timestamp di keep-alive (vedi monitoraggio processi)

Possibilità di essere eseguito in modo "atomico", ovvero potrà essere eseguito per aggiornare un singolo elemento della tabella, se eseguito dal programma di gestione.

 

Monitoraggio processi

 

Il processo esecutore AGLANCIO verrà eseguito da un motore esterno, come ad esempio ZCRON o PgAgent. Questo motore dovrà anche occuparsi di tentare, ogni "n" minuti, di tentare nuovamente il lancio se risulta non attivo.

Nota 31/10/2019:Vedi sopra: dovrà essere un processo non thin; dato che comunque il processo è "WRUN32", o "RUNCBL", come fare per identificare il processo che interessa a noi? Forse la cosa migliore è comunque usare data/ora di keep-alive.

 

Su ARPAZIEN sarà presente anche un'informazione "keep-alive" che permetterà ad un demone esterno di verificare se il processo è attivo e funzionante: questo dato dovrà essere aggiornato da:

AGLANCIO: al termine di ogni ciclo di controllo

AGLANCIO: prima o dopo dell'esecuzione di un singolo processo attivo

SW* : se l'esecuzione è lunga, ogni 1 minuti deve aggiornare il keep-alive, ma solo se il processo viene lanciato da AGLANCIO (altrimenti potrebbe risultare un falso segnale)

 

Altri programmi

 

Nome

Descrizione

GESSTPRC - Pannello di controllo AREAGATE

Programma a menu che permette di configurare, attivare e controllare le sincronizzazioni

AGLANCIO - Esecuzione processi di sincronizzazione con AREAGATE

Programma da attivare su PgAgent per la schedulazione dei processi previsti