Condividi tramite


Utilizzo di checkpoint nei pacchetti

In Integration Services i pacchetti non eseguiti correttamente possono venire riavviati a partire dal punto in cui si è verificato l'errore anziché dall'inizio. Se un pacchetto è configurato per l'utilizzo di checkpoint, le informazioni sull'esecuzione del pacchetto vengono scritte in un file del checkpoint. Questo file viene quindi utilizzato per il riavvio di un pacchetto dal punto in cui si è verificato l'errore. Se il pacchetto viene eseguito correttamente, il file del checkpoint viene eliminato e quindi creato nuovamente alla successiva esecuzione del pacchetto.

L'utilizzo di checkpoint in un pacchetto offre i vantaggi indicati di seguito.

  • Non è necessario caricare e scaricare nuovamente file di grandi dimensioni. Un pacchetto che scarica più file di grandi dimensioni utilizzando un'attività FTP distinta per ogni download può ad esempio essere riavviato se il download di un singolo file ha esito negativo. È quindi sufficiente scaricare nuovamente solo questo file.

  • Non è necessario caricare nuovamente grandi quantità di dati. Un pacchetto che esegue inserimenti bulk in tabelle delle dimensioni di un data warehouse utilizzando un'attività Inserimento bulk distinta per ogni dimensione può ad esempio essere riavviato se l'inserimento ha esito negativo per una tabella delle dimensioni. Verrà quindi caricata nuovamente solo tale dimensione.

  • Non è necessario ripetere l'aggregazione di valori. Un pacchetto che calcola numerose aggregazioni, quali medie e somme, utilizzando un'attività Flusso di dati distinta per ogni aggregazione può ad esempio essere riavviato se il calcolo di un'aggregazione ha esito negativo. Verrà quindi ricalcolata solo tale aggregazione.

Se un pacchetto è stato configurato per l'utilizzo di checkpoint, in Integration Services il punto di riavvio viene acquisito nel file del checkpoint. Il tipo di contenitore che ha esito negativo e l'implementazione di funzionalità quali le transazioni influiscono sul punto di riavvio registrato nel file del checkpoint. Nel file del checkpoint vengono acquisiti anche i valori correnti delle variabili. I valori delle variabili con tipo di dati Object non vengono tuttavia salvati nei file del checkpoint.

Se il pacchetto viene riavviato, le relative configurazioni non vengono ricaricate in Integration Services. Il pacchetto utilizza invece le informazioni di configurazione scritte nel file del checkpoint. In questo modo, quando un pacchetto viene eseguito di nuovo, vengono utilizzate le stesse configurazioni in uso al momento dell'errore.

Definizione dei punti di riavvio

I seguenti componenti di Integration Services sono unità di lavoro atomiche che possono essere riavviate mediante i checkpoint:

  • Attività   Il contenitore host dell'attività, che incapsula una singola attività, corrisponde all'unità di lavoro atomica più piccola che è possibile riavviare.

    [!NOTA]

    Poiché l'attività Flusso di dati, che include tutto il relativo contenuto, è un'unità di lavoro atomica, non è possibile riavviare un pacchetto all'interno del flusso di dati. Per evitare di eseguire di nuovo l'intero flusso di dati, è possibile progettare il pacchetto in modo da contenere più attività Flusso di dati. In tal modo, quando il pacchetto viene riavviato, verranno eseguite di nuovo solo le attività Flusso di dati che hanno avuto esito negativo.

  • Contenitore transazionale   Anche un contenitore transazionale è un'unità di lavoro atomica che può essere riavviata. Se un pacchetto viene interrotto durante l'esecuzione di un contenitore transazionale, la transazione viene interrotta e viene eseguito il rollback di qualsiasi lavoro eseguito dalla transazione. Il file del checkpoint non contiene tuttavia informazioni sul lavoro completato dai contenitori figlio e sia il contenitore transazionale sia i relativi contenitori figlio vengono eseguiti di nuovo al riavvio del pacchetto.

    Per ridurre al minimo la possibilità che si verifichino conflitti tra i checkpoint e le transazioni, in Integration Services non vengono salvate le informazioni del checkpoint relative alle attività eseguite in un contenitore quando si verifica una delle seguenti condizioni:

    • Il valore della proprietà TransactionOption del contenitore è Required.

      —oppure—

    • Il valore della proprietà TransactionOption del contenitore è Supported, ma il contenitore padre è proprietario di una transazione o è registrato in essa.

    [!NOTA]

    L'utilizzo di checkpoint e transazioni nello stesso pacchetto può provocare risultati imprevisti. È possibile, ad esempio, che un pacchetto che restituisce un errore e viene riavviato da un checkpoint ripeta una transazione di cui è già stato eseguito correttamente il commit.

  • Contenitore Ciclo Foreach   Il contenitore Ciclo Foreach è un'altra unità di lavoro atomica che può essere riavviata. Il file del checkpoint non contiene tuttavia informazioni sul lavoro completato dai contenitori figlio e sia il contenitore Ciclo Foreach sia i relativi contenitori figlio vengono eseguiti di nuovo al riavvio del pacchetto.

Configurazione di un pacchetto per il riavvio

Il file del checkpoint include i risultati dell'esecuzione di tutte le unità di lavoro completate (come descritto in precedenza in questo argomento), i valori correnti delle variabili definite dall'utente e di sistema e le informazioni sulla configurazione del pacchetto. Il file include inoltre l'identificatore univoco del pacchetto. Un pacchetto viene riavviato correttamente se l'identificatore contenuto nel file del checkpoint corrisponde effettivamente al pacchetto. In questo modo, un pacchetto non può utilizzare un file del checkpoint scritto da una versione diversa del pacchetto. Se il pacchetto viene eseguito correttamente, dopo il suo riavvio il file del checkpoint viene eliminato.

Nella tabella seguente sono elencate le proprietà del pacchetto che è possibile impostare per implementare i checkpoint.

Proprietà

Descrizione

CheckpointFileName

Specifica il nome del file del checkpoint.

CheckpointUsage

Specifica se i checkpoint vengono utilizzati.

SaveCheckpoints

Indica se il pacchetto salva i checkpoint. Questa proprietà deve essere impostata su True per consentire il riavvio di un pacchetto da un punto di errore.

È inoltre necessario impostare la proprietà FailPackageOnFailure su true per tutti i contenitori del pacchetto che si desidera identificare come punti di riavvio.

La proprietà ForceExecutionResult consente di testare l'utilizzo dei checkpoint in un pacchetto. Se si imposta la proprietà ForceExecutionResult di un'attività o di un contenitore su Failure, è possibile riprodurre l'errore in tempo reale. Quando si esegue di nuovo il pacchetto, l'attività e i contenitori che hanno avuto esito negativo vengono eseguiti nuovamente.

Impostazione della proprietà CheckpointUsage

Nella tabella seguente vengono elencati i valori della proprietà CheckpointUsage.

Valore

Descrizione

Never

Specifica che il file del checkpoint non viene utilizzato e che il pacchetto viene eseguito dall'inizio del flusso di lavoro.

Always

Specifica che il file del checkpoint viene sempre utilizzato e che il pacchetto viene riavviato a partire dal punto in cui si è verificato l'errore. Se il file del checkpoint non viene individuato, il pacchetto ha esito negativo.

IfExists

Specifica che il file del checkpoint viene utilizzato, se disponibile. Se il file del checkpoint è disponibile, il pacchetto viene riavviato a partire dal punto in cui si è verificato l'errore. In caso contrario, viene eseguito dall'inizio del flusso di lavoro.

[!NOTA]

L'opzione /CheckPointing on di dtexec equivale a impostare la proprietà SaveCheckpoints del pacchetto su True e la proprietà CheckpointUsage su Always. Per ulteriori informazioni, vedere Utilità dtexec.

Scelta di un percorso per i file del checkpoint

In un cluster di failover in cui Integration Services è installato in più nodi nel cluster è possibile salvare i file del checkpoint in un percorso condiviso. Se si verifica il failover, è quindi possibile riavviare un pacchetto interrotto dall'ultimo checkpoint in un nodo diverso nel cluster.

Protezione dei file del checkpoint

Poiché la protezione a livello di pacchetto non include la protezione dei file del checkpoint, è necessario proteggere tali file separatamente. I dati di checkpoint possono essere archiviati esclusivamente nel file system ed è necessario utilizzare un elenco di controllo di accesso (ACL) del sistema operativo per proteggere il percorso o la cartella in cui è archiviato il file. È importante proteggere i file del checkpoint perché contengono informazioni sullo stato del pacchetto, quali i valori correnti delle variabili. Una variabile può ad esempio contenere un recordset con numerose righe di dati privati, quali numeri di telefono. Per ulteriori informazioni, vedere Controllo dell'accesso ai file utilizzati dai pacchetti.

Per configurare le proprietà dei checkpoint

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per informazioni sui download, gli articoli, gli esempi e i video Microsoft più recenti, nonché sulle soluzioni selezionate dalla community, visitare la pagina Integration Services su MSDN o Technet:

Per ricevere notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.

Cronologia modifiche

Aggiornamento del contenuto

  • Spiegazione dei componenti che rappresentano unità di lavoro nella sezione "Definizione dei punti di riavvio".

  • Aggiunta della sezione "Scelta di un percorso per i file del checkpoint".