"Schedula"

Navigation:  Varie > Funzioni di utilità >

"Schedula"

Previous pageReturn to chapter overviewNext page

Questo è un eseguibile di utilità che si prefigge lo scopo di monitorare, uccidere, e re-startare i processi che sono bloccati o in loop

 

Per i tecnici: leggere tutto con attenzione, quindi guardare il vademecum alla fine del documento per eseguire l'installazione.

 

Installazione e componenti

 

Il percorso sorgente dei file da copiare sulla installazione dei clienti è P:\delphi\process\Appl ; la cartella di destinazione lato cliente sarà normalmente c:\ecoge\schedula. I file da copiare sono i 3 elencati sotto (ossia schedula.exe, config.ini, lista.bat)

In un rilascio standard del gestionale, sotto la cartella "sys" dovrà essere presente una cartella "schedula" contenente:

 

Schedula.exe: L'applicazione

config.ini: il file di configurazione

lista.bat: un file batch che permetterà di ottenere l'elenco dei processi da esaminare

 

Durante la prima esecuzione verrà creata anche una sottocartella "log" in cui saranno creati i file di log con la storia del funzionamento dell'applicazione.

 

 

Il file di configurazione

 

il contenuto del file di configurazione (config.ini) è strutturato come segue:

 

- Process-name=Test APOLLONIA - Clinica 1

- Nome-Immagine=wrun32.exe

- Secondi-Ctr-Fermo=60

- Secondi-Ctr-Loop=59

- %-CPU-Loop=15

- StartProcess="T:\apollonia\c04087 Clinica Gemona\post01\ecoge\run\thin\acuthin.exe"

- StartParams="T:\apollonia\c04087 Clinica Gemona\post01\ecoge\run\cloud_area.atc"

- AutoStart=Si

 

- Process-name=Test APOLLONIA - PdaLab

- Secondi-Ctr-Fermo=60

- Secondi-Ctr-Loop=60

- %-CPU-Loop=45

- StartProcess=

- StartParams=

- AutoStart=No

 

- Process-name=ACUCOBOL-GT Debugger

- Secondi-Ctr-Fermo=60

- Secondi-Ctr-Loop=60

- %-CPU-Loop=45

- StartProcess="T:\apollonia\c04087 Clinica Gemona\post01\ecoge\run\thin\acuthin.exe"

- StartParams="T:\apollonia\c04087 Clinica Gemona\post01\ecoge\run\cloud_area.atc"

- AutoStart=No

 

Comando-Tasklist=p:\delphi\process\lista.bat

Comando-Taskkill=c:\windows\system32\taskkill.exe

NomeLista=p:\delphi\process\lista.txt

Secondi-Timer=15

LogLevel=0

 

Nell'esempio qui sopra, vengono monitorati 3 processi distiniti; come si può vedere, per ogni processo da controllare si ripete una serie di parametri; dopodichè sono presenti alcuni parametri di configurazione generali.

 

Parametri generali

Comando-Tasklist=nome file

Corrisponde al percorso completo del nome del file batch "lista.bat", che dovrà contenere il comando "tasklist" con cui ottenere l'elenco dei processi.

NB: viene usato un file batch perchè è l'unico modo (per il momento) in cui sono riuscito a ridirigere l'output del comando su un file analizzabile.

Comando-Taskkill=nome file

Corrisponde al percorso completo del nome del comando"taskkill.exe", presente in ogni installazione di Windows.

Verrà usato per rimuovere i processi quando necessario.

NomeLista=nome file

Corrisponde al percorso completo del nome del file su cui viene rediretto l'output del comando "tasklist" (vedi "Lista.bat")

SecondiTimer=nn

L'applicazione eseguirà una scansione dei processi ogni "nn" secondi configurati.

LogLevel=nn

Il log dell'attività dell'applicazione potrà essere pilotato da questo parametro:

0: log minimo

....

9: log massimo

Aumentare il livello di log può aiutare per comprendere il funzionamento, e a capire il nome del processo da controllare.

NB: attualmente sono previsti livelli di log da 0 a 4

 

StopOraInizio=hh:mi

StopOraFine=hh:mi

Se impostati, l'attività di Schedula sarà sospesa nell'intervallo di tempo indicato

 

Comando-Tasklist=c:\ecoge\schedula\lista.bat

Comando-Taskkill=c:\windows\system32\taskkill.exe

NomeLista=c:\ecoge\lista.txt

Secondi-Timer=15

LogLevel=0

 

Parametri per configurazione processo

 

- Process-name=nome processo

Il nome del processo da monitorare; deve corrispondere al nome mostrato quando si esegue il file lista.bat (vedere sotto)

Parametro obbligatorio e principale

NB:

Se il primo carattere è "*", allora saranno considerati tutti i processi che iniziano con la stringa indicata.

 

- Nome-Immagine=nome immagine

Nome immagine da controllare

Nel caso in cui "Process-name" contenga un nome che è generico e non ben definito (in alcuni casi si osserva "N/D") permette di riconoscere il processo interessato

 

Controllo se il processo è fermo

 - Secondi-Ctr-Fermo=nn

Il sistema controllerà un periodo di "nn" secondi; se in questo periodo il tempo CPU è rimasto invariato, si assume che il processo è bloccato e dovrà essere rimosso.

Generalmente va settato a 36000 (36000 secondi ossia 10 ore)

 

Controllo se il processo è in loop

 - Secondi-Ctr-Loop=nn

 - %-CPU-Loop=nn

Il sistema controllerà un periodo di "nn" secondi; se in questo periodo il tempo CPU impiegato per il processo supera la % configurata, si assume che il processo è in loop e dovrà essere rimosso.

Generalmente Secondi-Ctr-Loop vale 59, mentre %-CPU-Loop vale 70

 

Rilancio applicazione

 - StartProcess=comando

 - StartParams=parametri

Se questi parametri sono significativi, dopo aver rimosso il processo per uno dei due motivi (Processo fermo o in loop), verrà fatto ripartire usando i parametri qui configurati.

Generalmente altro non sono che il percorso, virgolettato da ", dell'eseguibile da lanciare e i parametri da appendere (senza virgolette). Qualora il programma da lanciare preveda una working dir (tipo quando si va a monitorare il wrun32.exe), va inserita negli StartParams. Es: StartProcess="C:\ecoge\....\wrun32.exe" , StartParams = -c c:\aaa\bbb\ccc\ parametri-vari

 - AutoStart=Si/No

Se 'Si', l'applicazione verrà eseguita anche nel caso in cui non è presente tra i processi attivi (default = si)

 

Lista.bat

 

Esempio del contenuto:

 

c:\windows\system32\tasklist.exe /v /fo csv /fi "IMAGENAME eq acuthin.exe" > p:\delphi\process\lista.txt

dove:

c:\windows\system32\tasklist.exe: percorso completo del comando "tasklist"

/v /fo csv: opzioni comuni (output dettagliato, formato csv)

/fi "IMAGENAME eq acuthin.exe": eventuale filtro sui processi: in questo caso ad esempio si selezionano solo i processi il cui nome immagine è "acuthin.exe"

> p:\delphi\process\lista.txt: ridirezione dell'output sul file indicato (che dovrà essere configurato in "NomeLista", di solito va messo su c:\ecoge\schedula\lista.txt)

 

Maschera dell'applicazione

 

exe_schedula

Configurazione

 

Lista che contiene l'elenco dei processi da monitorare

Processo: il processo da monitorare

Intervallo (sec): Intervallo in secondi su cui effettuare il controllo per "processo fermo"

Intervallo (sec) x loop: Intervallo in secondi su cui effettuare il controllo per "processo in loop"

% CPU: Percentuale che non deve essere raggiunta dal processo all'interno del periodo configurato

Processo da eseguire: il comando da eseguire, se richiesto, per fare ripartire l'applicazione dopo essere stata chiusa forzatamente.

Parametri: parametri di esecuzione del comando da eseguire

Autostart: Indica se l'applicazione deve essere eseguita anche quando non è attiva

 

Parametri generali

 

In questa sezione sono mostrati alcuni parametri di configurazione generali

 

Processi

 

Lista che contiene l'elenco dei processi trovati che corrispondono ai processi da monitorare

Id: il PID del processo

Nome immagine: nome immagine del processo

Titolo: nome del processo

Parametri per il controllo del processo fermo

Time ctr: Ora di inizio dell'intervallo su cui viene analizzato il processo

Cpu ctr: Tempo CPU all'inizio dell'intervallo su cui viene analizzato il processo

Cpu att: Tempo CPU corrente

Fermo: intervallo: durata attuale dell'intervallo analizzato

Fermo: CPU: tempo utilizzato nell'intervallo attuale (NB: se durante l'intervallo questo tempo assume un valore <> 0, l'intervallo verrà azzerato e ricomincierà)

Parametri per il controllo del processo in loop

Loop: tempo inizio: Ora di inizio dell'intervallo su cui viene analizzato il processo in loop

Loop: CPU inizio: Tempo CPU utilizzato dal processo al momento di inizio dell'intervallo

Loop: intervallo: Tempo trascorso nell'intervallo attuale

Loop: CPU inizio: Tempo CPU utilizzato nell'intervallo attuale

 

Per i tecnici: vademecum minimo da seguire per la installazione

 

- Collegarsi col teamviewer al server del cliente su cui è necessario installare schedula.

- Creare la cartella c:\ecoge\schedula

- Col teamviewer, trasferire dentro a c:\ecoge\schedula i file schedula.exe, config.ini, lista.bat presenti in eurosystem sulla cartella \\sviluppo-centos\programmi\delphi\process\Appl

- Schedula serve a monitorare uno o più processi, pertanto bisogna guardare - o farsi dire - quale processo va monitorato; tipicamente è una istanza del thin client che serve a gestire alcune cose, e che prima della installazione di schedula viene lanciata a mano dal desktop. Guardando le proprietà del collegamento, potrete vedere quale esegibile va monitorato (es: acuthin.exe) e con quali parametri di lancio.

- Modificate il file c:\ecoge\schedula\lista.bat verificando che il processo listato (es: acuthin.exe) sia corretto (ossia quello da monitorare) e settare la ridirezione dopo il segno > a c:\ecoge\schedula\lista.txt

- Con il programma da monitorare in esecuzione, lanciate a mano lista.bat e guardate il file prodotto lista.txt; dovete vedere quale è il nome immagine, che di solito altro non è che il nome che c'è sulla finestra del thin client o del programma da monitorare (es: EUROSYSTEM2000 gestionale AREA)

- Modificare con cura il file config.ini sulla base di quanto elencato sopra; un piccolo esempio pratico per intenderci può essere questo:

 

- Process-name=AMBIENTE Ufficiale Eurosystem2000 - Linux server

- Secondi-Ctr-Fermo=36000

- Secondi-Ctr-Loop=59

- %-CPU-Loop=15

- StartProcess="K:\ecoge\run\thin\acuthin.exe"

- StartParams=es2000-centos:5632 ecoge-gui  S100AAAAAAAAPC-CAVAZ

- AutoStart=Si

 

Comando-Tasklist=c:\ecoge\schedula\lista.bat

Comando-Taskkill=c:\windows\system32\taskkill.exe

NomeLista=c:\ecoge\schedula\lista.txt

Secondi-Timer=15

StopOraInizio=23:00:00

StopOraFine=05:00:00

 

Occhio al fatto che il parametro StarProcess richiede i doppi apici (") mentre il parametro Startarams no, ed attenzione ai 2 parametri finali, ossia StopOraInizio e StopOraFine; questi due parametri sono quelli relativi alla sospensione programmata, e si vedono nella finestra del processo da monitorare, se presenti. Se non ci sono, mettere 00:00:00 e 00:00:01, in modo che schedula di fatti si inattivi per un solo secondo. Il formato dell'orario richiede i due punti, altrimenti va in errore.

 

Fatto tutto, chiudere il processo da monitorare e lanciare schedula. Verificare che il programma attivi quanto necessario; provare a chiudere il processo lanciato e verificare che dopo il tempo settato (Es: 15 secondi) il processo venga rilanciato.

 

Verificato il corretto funzionamento, concludere inserendo schedula in esecuzione automatica su windows.