Che il parametro generale Utilizzo dei file batch sia uguale a Si nei parametri del server batch.
Che il parametro EXTBATCH sia uguale a Si. Questo parametro, che appartiene al gruppo SUP, può essere definito a livello dossier e utente. E' così possibile vietare completamente il lancio di richieste batch per un dato dossier, accordando se necessario un'eccezione a determinati utenti.
Il lancio di una richiesta batch può essere realizzato tramite il deposito di un file di estensione .job nella directory dedicata a questi file. Questo file deve essere di tipo ascii, strutturato in righe chiuse da <CR> o <CR><LF>, ogni riga definisce il valore di un parametro sotto forma:
PARAMETRO=VALORE
Alcuni parametri sono obbligatori ed identificano il contedto di esecuzione della richiesta. Altri parametri dipendono dalla richiesta da lanciare; il loro nome corrisponde al nome dei parametri definiti nella videata associata al lancio della richiesta. In alcuni casi, un riquadro di parametri è definito nella videata; la sintassi è allora PARAMETRO(indice)=VALORE, dove indice è un valore numerico.
Per facilitare la creazione di un simile file, è possibile lanciare la richiesta dal software, contrassegnando la casella modello nella videata di lancio delle richieste. Se si fa ciò, nella directory di lancio sarà creato un file contenente la lista completa dei parametri di lancio e il loro valore. Questo file è creato con il nome della richiesta e l'estensione .mod.
Nella riquadro qui sotto si trovano il nome dei parametri obbligatori e la loro definizione.
PARAMETRO | DEFINIZIONE |
DOSSIER | Il codice del dossier su cui deve essere lanciata la richiesta |
UTIL | Il codice dell'utente di connessione al dossier |
PASSE | Password criptata dell'utente |
GRP | Il gruppo di richieste (se un gruppo viene lanciato) |
TACHE | La richiesta (se viene lanciata una richiesta) |
DATE | La data di lancio (nel formato AAAAMMGG) |
HEURE | L’ora di lancio (nel formato HHMM) |
Si noti che i valori del parametro sono indicati senza nessun separatore e che è possibile mettere delle righe di commenti prefissati dal carattere #. Così, si potrà mettere nel file delle richieste:
# Parametri obbligatori
DOSSIER=DEMO
DATE=20020614
…
# Parametri complementari
PARAM(1)=TEST
PARAM(2)=ABC
Il server batch ispeziona a intervalli regolari il contenuto della directory dedicata ai file di richiesta. Al momento dell'ispezione, legge i file presenti nella directory prendendoli nell'ordine ascii. Si consiglia quindi di chiamare questi file con una radice fissa e un numero sequenziale su una lunghezza fissa. Si potrebbe per esempio nominarli REQ000001.req, REQ0000002.req…
Durante l'elaborazione di ogni file, vengono creati dei file successivamente nelle varie directory definite dai parametri del server batch. Tali file sono definiti qui in basso:
FASE DI ELABORAZIONE | FILE AGGIORNATI |
Deposito di una richiesta di elaborazione batch | Creazione del file xxxxx.job da un processo esterno, nella directory dedicata. |
Il server batch considera la richiesta e aggiorna la sua tabella di richieste da lanciare. | Il file xxxxx.job è rinominato in xxxxx.req (e spostato se le directory non sono le stesse) |
Il server individua un errore nel file dei parametri (password errata, codice job sconosciuto...) | Il file xxxxx.job è rinominato in xxxxx.old (e spostato se le directory non sono le stesse) Viene creato un file xxxxx.sta nella directory dedicata. Contiene un codice errore che permette di sapere che il file di input era errato (vedere formato del file qui di seguito). |
La richiesta è in corso di esecuzione poiché il server batch l'ha lanciata | Il file xxxxx.req è rinominato in xxxxx.old (e spostato se le directory non sono le stesse) Viene creato un file chiamato xxxxx.run nella directory dedicata. |
La richiesta è terminata (correttamente o con un errore) | Il file xxxxx.run è cancellato e viene creato un file xxxxx.sta nella directory dedicata: questo file contiene un stato di ritorno (vedere formato del file qui sotto). |
Deposito di una richiesta di interruzione di richiesta batch (in attesa di lancio o già lanciata) | Creazione del file xxxxx.kil da un processo esterno, nella directory dedicata. |
Presa in conto della richiesta di interruzione (se la richiesta non è ancora lanciata) | Il file xxxxx.req (o il file xxxxx.job se non fosse stato ancora preso in considerazione) è rinominato in xxxxx.old. Il file xxxxx.sta è creato nella directory dedicata. Contiene un codice errore che permette di sapere che la richiesta è stata interrotta senza essere stata lanciata. Il file xxxxx.kil viene cancellato. |
Presa in considerazione della richiesta di interruzione (se la richiesta è già lanciata e non è ancora terminata) | La richiesta è interrotta da killadx, poi viene creato il file xxxxx.sta nella directory dedicata, con un codice errore che permette di sapere che la richiesta è stata interrotta. I file xxxxx.kil e xxxxx.run sono cancellati. |
Tenuto conto delle priorità di esecuzione o dell'arresto del server batch, non è stato possibile lanciare la richiesta nei termini previsti (richiesta fuori termine) | La richiesta non è lanciata, ma il file xxxxx.req (il file xxxxx.job all'occorrenza) è rinominato in xxxx.old e se necessario spostato. Viene creato un file xxxxx.sta nella directory dedicata. Contiene un codice errore che permette di sapere che non è stato possibile lanciare la richiesta. |
Si noti che il fatto che un file xxxxx.run esista non significa necessariamente che la richiesta in questione giri. Infatti, se il server batch è stato arrestato senza arrestare le richieste che giravano, i file xxxxx.run corrispondenti esisteranno sempre anche se la richiesta avrà terminato la sua elaborazione. In questo caso, neanche il file xxxxx.sta verrà creato. Al contrario, quando il server sarà lanciato di nuovo, il file xxxxx.run verrà cancellato, un filexxxxx.stache contiene uno stato particolare viene allora creato.
Il numero di richieste batch in corso di elaborazione non deve necessariamente dedursi dal numero dei file xxxxx.run presenti nella directory dedicata.
Questi file sono dei file ascii, codificati in ascii 8 bits, presenti in diverse directory, secondo la parametrizzazione:
La struttura della riga unica contenuta nei file .run e .sta è la seguente:
Lo schema esatto è il seguente:
N° stato | N° richiesta | Data e ora inizio | Data e ora fine | Codice dossier | Codice utente | Codice del job | Messaggio per esteso | Fine riga |
NNNNN | NNNNNNNN | AAAAMMGGHHMMSS | AAAAMMGGHHMMSS | DDDDDDDDDD | UUUUU | TTTTTTTTTT | XXXXXXXXXXXXXXXXXX | <CR> |
5 cifre | (8 cifre) | (14 cifre) | (14 cifre) | (10 caratteri) | (5 caratteri) | (10 caratteri) | (80 caratteri) | (1 o 2 byte) |
Il campo messaggio permette, se necessario, di spiegare il codice errore. E' memorizzato nella lunghezza fissa di 80 caratteri (il messaggio è completato, se necessario, da spazi)
Il numero di richiesta è memorizzato su 8 caratteri, se necessario prefissato da degli zero. Questo numero permette di conoscere il nome del file di traccia generato all'esecuzione della richiesta. Infatti, questo file si chiama RQTNNNNNNNN.tra (dove NNNNNNNN è il numero di richiesta su 8 caratteri). Lo si trova nella sottodirectory TRA del dossier SERVX3. Si noti che questo numero può essere nullo in alcuni casi di errore, se non è stato possibile lanciare nessuna richiesta.
Il codice del job corrisponde al job o al concatenamento di job lanciati, così come conosciuto nella tabella dei job o dei concatenamenti.
Il codice stato, su 5 caratteri numerici, permette di conoscere il risultato dell'esecuzione. La prima cifra determina il risultato globale dell'esecuzione, mentre le cifre successive forniscono delle informazioni complementari. Quando la richiesta è terminata senza errori e senza avvisi, si ha un codice errore uguale a 00000. Il dettaglio dei codici è fornito qui in basso:
Valore del codice errore su 5 cifre | Messaggio per esteso | |||
Prima cifra | Significato | Complemento | Significato |
|
0 | Fine normale dell'elaborazione | 0000 | Senza avviso | RICHIESTA TERMINATA |
NNNN | Con NNNNavvisi nella traccia (9999 se 9999 o più) | RICHIESTA TERMINATA CON AVVISI | ||
1
| Fine dell'elaborazione su errore
| 0000 | Errore non specificato (per esempio se GOK = -1 e nessuna informazione supplementare) | RICHIESTA TERMINATA CON ERRORE SCONOSCIUTO |
1NNN | Errore n° NNNNdel motore adonix (messaggio M) | FINE SU ERRORE ADONIX: M | ||
2000 | Errore di lock (GOK=0) | ERRORE DI LOCK | ||
3NNN | Errore logico di elaborazione con: NNN =valore variabile GERRBATCH, | RICHIESTA TERMINATA CON ERRORE M | ||
Note importanti :
| ||||
2
| Elaborazione non lanciata
| 1000 | Il job è stato programmato ad un'ora determinata, ma non è stato possibile lanciarlo nei termini previsti. | TERMINE SUPERATO |
2000 | Job inesistente | TTTJOB INESISTENTE | ||
3000 | Abilitazione (non specificata) | ELABORAZIONE NON LANCIATA PER PROBLEMA DI ABILITAZIONE NON SPECIFICATO | ||
3100 | Abilitazione (utente U sconosciuto) | UTENTE USCONOSCIUTO | ||
3200 | Abilitazione (password errata per utente U) | PASSWORD ERRATA PER L'UTENTE U | ||
3300 | Abilitazione (rifiuto da entry point) | ELABORAZIONE NON LANCIATA PER DIRITTI RIFIUTATI DA ENTRY POINT | ||
3400 | Abilitazione (livello N del job vietato all'utente U insufficiente) | LIVELLO DI ACCESSO NNON AUTORIZZATO ALL'UTENTE U | ||
3500 | Abilitazione (funzione Fnon autorizzata all'utente U) | F FUNZIONE NON AUTORIZZATA ALL'UTENTE U | ||
4NNN | Passaggio in modalità mono impossibile (NNNutenti in corso) | PASSAGGIO IN MODALITA' MONO IMPOSSIBILE PERCHE' NNNUTENTI CONNESSI | ||
5000 | ElaborazioneTinesistente | ELABORAZIONETINESISTENTE | ||
3 | Arresto dell'elaborazione | 0000 | Arresto dell'elaborazione, ragione sconosciuta (per esempio se un processo diverso dal server batch ha cancellato la richiesta) | RICHIESTA INTERROTTA (RAGIONE SCONOSCIUTA) |
1000 | Per file d’estensione .kil, che contiene il messaggio M | RICHIESTA INTERROTTA DAU PER IL MOTIVO M | ||
Nota: nel caso di un kill per file, il codice utente può essere vuoto. Infatti, il sistema cerca, a partire dall'identificativo dell'utente che ha creato il file, se un codice utente adonix corrisponde o meno. Questa ricerca può non funzionare secondo i sistemi operativi utilizzati. | ||||
2000 | Dalla gestione dei job e l'utente U: il messaggio inserito è M | RICHIESTA INTERROTTA DA U PER IL MOTIVO M | ||
3000 | Dal server batch causa time-out | ELABORAZIONE INTERROTTA DAL SERVER RAGIONE=SUPERAMENTO DEL TEMPO ACCORDATO |
Nel quadro della modellizzazione dei job batch (modello GTRAITE), occorre notare che l'utente dispone delle seguenti variabili, accessibili nei job specifici o in jobs standard tramite entry point :
Salvo errore di coerenza al lancio, i job batch standard del software considerano in tutti i casi che gli errori riscontrati non sono gravi e aggiornano semplicemente la traccia incrementando GERRTRACE. Ciò significa che ogni errore grave che deve interrompere l'elaborazione deve essere trattato in modo specifico tramite entry point, dando a GERRBATCH un valore superiore a 100.
Questo file, presente nella sotto-directory TRA della directory SERVX3, contiene la traccia del server. La struttura delle righe è conforme a quella di un file di traccia classico (testata normalizzata e stati numerici su 5 caratteri). Ogni riga è composta da un testo eventualmente prefissato da un numero (questo numero è lui stesso preceduto dal carattere < se si considera che si tratta di un errore, da = se si tratta di un avviso.
I numeri degli stati successivi esistono (sono prefissati da 4 e 5 per delle ragioni di continuità di numerazione con gli stati precedenti). Si osservi che gli stati che cominciano con 4 sono degli stati gravi che non dovrebbero capitare in una gestione normale (problemi di aggiornamento, di gestione dei jobs, di lock del server batch) e possono provenire da problemi sistemistici, sia da una cattiva installazione, o ancora da specifici. Gli stati che cominciano con 5 sono stati normali dell'attività del server batch:
ERRORI GRAVI DI COERENZA DEL SERVER | ||
Stato | Spiegazione | Testo |
41000 | Desincronizzazione job | ERRORE DESINCRONIZZAZIONE JOB |
42000 | Problema di accesso alla tabella dei job | ERRORE DI ACCESSO ALLA TABELLA DEI JOB |
43000 | Numero di richiesta inesistente | ERRORE RICHIESTA INESISTENTE |
44000 | Problema di accesso alla tabella dei parametri batch |
|
MESSAGGI NORMALI DI GESTIONE DEL SERVER | ||
50000 | Avvio del server | AVVIO DEL SERVER BATCH |
51000 | Attivazione richiesta (process id P) | ATTIVAZIONE RICHIESTA PID=P |
52NNN | Errore adonix NNNall'avvio server (messaggio di errore = M) | ERRORE ALL'AVVIO DEL SERVER M |
53000 | Altro errore all'avvio del server | ERRORE INDETERMINATO ALL'AVVIO DEL SERVER |
54000 | Lancio server quando è già attivo | SERVER GIA' ATTIVO |
55000 | Disattivazione server |
|
Questi file, presenti nella sotto-directory TRA della directory SERVX3, contengono la traccia associata alla richiesta stessa. La struttura delle righe è conforme a quella di un file di traccia classico (testata normalizzata e stati numerici su 5 caratteri). Ogni riga è composta da un testo eventualmente prefissato da un numero (questo numero è preceduto dal carattere < se si considera che si tratta di un errore o di un avviso). Questi file possono essere letti direttamente dal gestore delle richieste con un clic destro / Lettura traccia.
Superata la riga di testata, la prima riga di un tale file si presenta sotto forma di una riga dal seguente formato (integra lo stato Attivazione richiestadefinito qui in basso):
=51000 NNNNNNNNGG/MM/AA hh :mm :ss Attivazione richiesta (51000)
(NNNNNNNNrappresenta qui il numero del job)
Le righe di traccia classica del job seguono questa prima riga (se l'elaborazione in questione non è lanciata in batch, queste righe sarebbero scritte in un file di traccia classico FNNNNN.tra nella directory TRA del dossier di lancio). Poi, salvo nel caso in cui il job sia stato arrestato bruscamente (con un killadx, per esempio), si troverà una riga finale di struttura identica, ma il cui numero è conforme allo stato di fine corretto (00000) o di errore (1NNNN) descritto sopra.