Gestione DB Areagate¶
Per collegare il gestionale Area con Areagate si utilizza un database PostgreSQL le cui tabelle sono sincronizzate tramite lo scheduler AGLANCIO e i programmi SWN*.
Configurazioni di base¶
| Gruppo | Parametro | Note |
|---|---|---|
| abilita | attiva-areaapp | "Pulsante di accensione". Replicato su ARPAZIEN campo RAZI_ATTIVA_SINCRO |
| areaapp | cod-azienda | Codice azienda |
| areaapp | db-conn-string | Stringa di connessione al database |
| areaapp | agg-postgres-online | Abilita/disabilita aggiornamento in tempo reale |
| areaapp | aglancio-attivo | Abilita la nuova procedura di sincronizzazione (default "N") |
Pannello di controllo (GESSTPRC)¶
Griglia di controllo dei processi di sincronizzazione. Ogni riga corrisponde a un processo (una tabella o un insieme di tabelle correlate).
| Colonna | Contenuto | Modificabile? |
|---|---|---|
| Nome | Nome del processo | |
| Descrizione | Descrizione breve del processo | |
| Istanza | Numero istanza. Se diversificato, definisce quanti processi in parallelo possono essere eseguiti. Per ogni istanza va attivato un apposito processo di esecuzione | Si |
| Attivo? | Attiva/disattiva il singolo processo | Si |
| Direzione | Direzione aggiornamento (le modalita' "I" e "E" valgono solo per processi bidirezionali) | |
| Timer | Tempo di attesa tra 2 schedulazioni dello stesso processo, in minuti (1-99999999) | Si |
| Forzo schedulazione | Fa partire immediatamente la schedulazione, 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 e' 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 | Si |
| Ultimo aggiornamento | Data/ora ultimo aggiornamento (solo per processi con export) | Si |
| Limita righe | Se > 0, limita l'elaborazione alle prime N righe. Utile in fase di impostazione iniziale o per distribuire il carico | Si |
| Limita errori | Se > 0, limita alle prime N segnalazioni di errore. Utile in fase di test | Si |
Tabelle di gestione¶
- ARPAZIEN — Record di controllo azienda: sincronizzazione attiva (RAZI-SINCRO-ATTIVA), data/ora keep-alive
- ARPPROC — Processi di sincronizzazione (tabella di sistema sul DB PostgreSQL, univoca per tutte le aziende)
- ARPSTPRC — Stato processi di sincronizzazione, gestita su ambiente di produzione o da funzione su Areagate
Ricerca dati di accesso¶
Ogni programma SWN* che deve aprire il DB di Areagate non cerca le configurazioni direttamente, ma interroga un apposito sottoprogramma che restituisce la stringa di connessione. La connessione puo' anche essere passata in input dal programma chiamante, in tal caso viene usata senza effettuare la chiamata.
Questo meccanismo permette di centralizzare il reindirizzamento del DB in futuro, modificando solo il sottoprogramma.
Esecutore processi (AGLANCIO)¶
Programma senza interfaccia, strutturato per rimanere residente finche' il flag RAZI_ATTIVA_SINCRO non viene abbassato.
Caratteristiche:
- Viene lanciato con un numero di istanza: scorre l'elenco dei processi collegati all'istanza e controlla se e' arrivato il momento dell'esecuzione
- All'inizio di ogni ciclo e prima dell'esecuzione di ogni processo, aggiorna data/ora keep-alive su ARPAZIEN
- A regime viene lanciato con un processo NON THIN, da crontab su Linux o da un eseguibile servizio su Windows
Caratteristiche dei singoli processi SWN*¶
- Nessuna interfaccia o interazione con il video
- Ricerca connessione DB: i dati di accesso devono essere restituiti dall'apposito sottoprogramma
- Gestione log di processo, con attivazione in funzione del livello previsto
- Ogni messaggio viene rediretto sul log usando l'apposita variabile di configurazione
- Aggiornamento dei dati sulla tabella "Pannello di controllo"
- Aggiornamento del timestamp di keep-alive
- Possibilita' di esecuzione "atomica": aggiornamento di un singolo elemento se eseguito dal programma di gestione
Monitoraggio processi¶
Il processo AGLANCIO viene eseguito da un motore esterno (ZCRON o PgAgent), che ogni N minuti tenta il rilancio se risulta non attivo.
Su ARPAZIEN e' presente l'informazione keep-alive che permette a un demone esterno di verificare se il processo e' attivo e funzionante. Viene aggiornata da:
- AGLANCIO: al termine di ogni ciclo di controllo
- AGLANCIO: prima/dopo l'esecuzione di un singolo processo attivo
- SWN*: se l'esecuzione e' lunga, ogni 1 minuto deve aggiornare il keep-alive (solo se lanciato da AGLANCIO, altrimenti risulterebbe un falso segnale)
Spegnimento e riattivazione¶
Da gestionale¶
- Disattivare la configurazione
attiva-areaapp - Alla successiva esecuzione di AGLANCIO, viene esportata la configurazione e il sistema si ferma
- Per riattivare: riattivare la configurazione
Da Areagate¶
Agisce su un flag separato RAZI-SWITCH-ONOFF su ARPAZIEN, per non interferire con il flag di configurazione del gestionale:
| Evento | ATTIVA-AREAAPP | RAZI-ATTIVA-SINCRO | RAZI-SWITCH-ONOFF |
|---|---|---|---|
| Sistema spento | "N" | " " | " " |
| Attivazione da configurazione | "S" | " " | " " |
| AGLANCIO avviato, sistema operativo | "S" | "S" | " " |
| Areagate richiede spegnimento | "S" | "S" | "OFF" |
| AGLANCIO rileva richiesta, si ferma | "N" | "N" | " " |
| Areagate richiede accensione | "N" | "N" | "ON" |
| AGLANCIO rileva richiesta, si riattiva | "S" | "S" | " " |
Programmi correlati¶
| Nome | Descrizione |
|---|---|
| GESSTPRC | Pannello di controllo Areagate — configurazione, attivazione e controllo delle sincronizzazioni |
| AGLANCIO | Esecuzione processi di sincronizzazione con Areagate — attivato da PgAgent/crontab |