Re: SQL Server 2005 - Checkpoint & Sequence Container

4 views
Skip to first unread message

Alessandro Alpi

unread,
Feb 6, 2008, 8:58:53 AM2/6/08
to
> Ciao,
Ciao Emiliano

> Quindi, dato un Sequnece Container con tre step Task A -> Task B -> Task
> C,
> sul fallimento di uno dei tre task devo riiniziare sempre dal Task A,
> qualcuno sa dirmi se è possibile?
Fammi capire meglio.. Tu hai tre task in serie. Adesso, ovunque si sollevi
l'eccezione, l'esecuzione riparte dal primo task?
Quello che ti serve invece è che il processo ti riparta dal task andato in
errore (compreso)?
In ogni modo, come hai settato le seguenti proprietà?
CheckpointFileName, CheckpointUsage, SaveCheckpoints

Come hai valorizzato le proprietà FailPackageOnFailure di ogni macroblocco e
del package?

--
Alessandro Alpi
MVP SQL Server - http://mvp.support.microsoft.com
dotNetHell.it - http://www.dotnethell.it
blog - http://blogs.dotnethell.it/suxstellino

Ho provato di tutto, ma non ne esco,
> l'unica alternativa che ho è farmi un controllino personale, ma vorrei
> evitarlo.
> Grazie

Emiliano Cassandra

unread,
Feb 6, 2008, 9:18:00 AM2/6/08
to
"Alessandro Alpi" wrote:

> Ciao Emiliano


> Fammi capire meglio.. Tu hai tre task in serie. Adesso, ovunque si sollevi
> l'eccezione, l'esecuzione riparte dal primo task?

magari, è quello che mi serve.
Magari, purtroppo riparte sempre dal punto in cui è andato in errore (penso
sia lo standard per i checkpoint), invece io lo voglio far pratire dal primo
step del container che ha avuto l'errore.

> In ogni modo, come hai settato le seguenti proprietà?
> CheckpointFileName, CheckpointUsage, SaveCheckpoints

CheckpointFileName = percorso\prova.xml
CheckpointUsage = always
SaveCheckpoints = true

> Come hai valorizzato le proprietà FailPackageOnFailure di ogni macroblocco e
> del package?

FailPackageOnFailure = true

ho messo questa opzione sia nel Container sia nei singoli step interni al
container provando tutte le combizioni possibili.
In più ho anche provato a settare FailParentOnFailure = true negli step
interni al container.

Alessandro Alpi

unread,
Feb 6, 2008, 10:15:59 AM2/6/08
to
> Magari, purtroppo riparte sempre dal punto in cui è andato in errore
> (penso
> sia lo standard per i checkpoint), invece io lo voglio far pratire dal
> primo
> step del container che ha avuto l'errore.
Questo perchè nel file SSIS si tiene salvato esattamente il task dove ha
avuto errore nell'ultima esecuzione..

Fai così:

- Metti a TUTTI i task interni ai sequence container la proprietà
FailPackageOnFailure a false
- Aggiungi in ogni sequence container un Foreach Loop container
- Imposta il Foreach Loop container con l'enumeratore "Item"
- Aggiungi sotto una colonna di tipo intero ad esempio e metti il valore 1
(un item con un qualunque valore a dire il vero, così fai solo un ciclo)
- Imposta la proprietà FailPackageOnFailure del Foreach Loop a true
- Sposta tutti i task che erano nel sequence container all'interno del
Foreach Loop container
- Imposta la proprietà FailParentOnFailure di ogni task (di primo livello)
interno al Loop a true
- Imposta la proprietà CheckpointUsage del package a IfExists e la
FailPackageOnFailure del package a false (le altre sono ok)

Il foreach loop è importante perchè nel checkpoint non viene segnato e
quindi il SSIS riparte sempre dall'ultimo foreach andato male..

cancella il file, riprova e fammi sapere ;-)

Reply all
Reply to author
Forward
0 new messages