Un'esecuzione in IrionEDM è una sequenza di elaborazioni, i cui passaggi intermedi corrispondono all'output di oggetti del Package che restituiscono dataset (e.g. Data Link e Data Engine). In particolare le principali fasi di un'esecuzione sono, nell'ordine:
✓ risoluzione di eventuali parametri,
✓ rilevazione delle dipendenze tra oggetti del Package,
✓ predisposizione del piano di esecuzione,
✓ esecuzione e tracciatura degli esiti.
IrionEDM gestisce l'ordine di esecuzione dei singoli oggetti mediante la definizione di uno specifico grafo delle dipendenze. Si tratta di un grafo:
✓ orientato, ogni oggetto è eseguito solo al termine dell'esecuzione degli oggetti da cui dipende;
✓ aciclico, l'esecuzione di un oggetto non può dipendere da oggetti, che direttamente o indirettamente lo referenziano.
Particolari tipi di dipendenze sussistono in presenza di Parameters e Iterator.
Ogni esecuzione in IrionEDM è preceduta dalla risoluzione di eventuali oggetti di tipo Parameters, in essa coinvolti. L'esecuzione effettiva inizia a seguito dell'approvazione o modifica dei valori di default del parametro da parte dell'utente.
Oggetti del Package che acquisiscono dati da DB (e.g. Database Link e DataBox Link) possono referenziare altri oggetti in qualità di Iterator. Si tratta di un particolare tipo di dipendenza che forza l'esecuzione dell'oggetto dipendente per ogni record restituito dall'iteratore.
Il piano di esecuzione gestisce in modo ottimizzato l'elaborazione dei singoli oggetti, secondo la struttura del grafo delle dipendenze. In particolare:
✓ oggetti indipendenti vengono eseguiti in parallelo;
✓ ogni oggetto viene eseguito una sola volta, anche se referenziato da più oggetti.
Ogni oggetto che genera un dataset dispone di proprietà per manipolare il grafo delle dipendenze ed il piano di esecuzione, tipicamente predisposti in automatico dal sistema.
La proprietà ExecuteAfter, disponibile nella Property Grid, consente di definire dipendenze in modo esplicito. In particolare, consente di specificare una lista di oggetti da cui dipende l'oggetto corrente, mediante un apposito wizard.
La proprietà ExecutionTimeOut, esposta nella Property Grid, permette di gestire manualmente la durata di esecuzione. Essa specifica il tempo massimo (in secondi) di esecuzione dell'oggetto corrente (escluso il tempo di esecuzione di eventuali dipendenze). Il suo valore può essere:
✓ -1 per utilizzare il valore di default (centoventi secondi),
✓ 0 per indicare che non esiste time out,
✓ un qualsiasi valore positivo.
IrionEDM dispone, a partire dalla versione 2016, di uno strumento di analisi grafica della struttura e delle dipendenze di ciascun Package di un Catalog, detto DELT_Graph.
APPROFONDIMENTI E ARGOMENTI CORRELATI