Risoluzione dei problemi relativi all'esecuzione di pacchetti

In Integration Services sono disponibili caratteristiche e strumenti per la risoluzione dei problemi che possono verificarsi quando si eseguono i pacchetti dopo averli completati e distribuiti.

In fase di progettazione, Business Intelligence Development Studio offre punti di interruzione che consentono di sospendere l'esecuzione dei pacchetti, una finestra di stato e visualizzatori dati che consentono di visualizzare il passaggio dei dati nel flusso di dati. Queste caratteristiche non sono tuttavia disponibili quando si eseguono i pacchetti distribuiti. Le tecniche principali per la risoluzione dei problemi relativi ai pacchetti distribuiti sono le seguenti:

  • Intercettazione e gestione degli errori dei pacchetti tramite gestori degli eventi.

  • Acquisizione dei dati errati tramite output degli errori.

  • Registrazione dei passaggi dell'esecuzione dei pacchetti.

Per evitare problemi relativi all'esecuzione di pacchetti, è inoltre possibile utilizzare le tecniche e i suggerimenti seguenti.

Intercettazione e gestione degli errori dei pacchetti tramite gestori degli eventi

I gestori degli eventi consentono di rispondere ai molti eventi generati dal pacchetto e dai relativi oggetti.

  • Creazione di un gestore dell'evento per l'evento OnError. Nel gestore dell'evento è possibile utilizzare un'attività Invia messaggi per inviare a un amministratore una notifica dell'errore, utilizzare un'attività Script e la logica personalizzata per ottenere informazioni di sistema per la risoluzione dei problemi oppure eliminare le risorse temporanee o l'output incompleto. Per ulteriori informazioni, vedere Gestori di eventi in Integration Services e Aggiunta di gestori di eventi per i pacchetti.

Risoluzione dei problemi relativi ai dati errati tramite output degli errori

È possibile utilizzare l'output degli errori disponibile in numerosi componenti del flusso di dati per indirizzare le righe contenenti errori a una destinazione distinta, per un'analisi successiva.

  • Acquisizione dei dati errati tramite output degli errori. È possibile inviare le righe contenenti errori a una destinazione distinta, ad esempio una tabella degli errori o un file di testo. Tramite l'output degli errori vengono aggiunte automaticamente due colonne numeriche contenenti il numero dell'errore a causa del quale la riga è stata rifiutata e l'ID della colonna in cui si è verificato l'errore. Per ulteriori informazioni, vedere Gestione degli errori nel flusso di dati e Procedura: Configurazione di un output degli errori in un componente del flusso di dati.

  • Aggiunta di informazioni descrittive agli output degli errori. Per semplificare l'analisi dell'output degli errori, oltre ai due identificatori numerici specificati dall'output stesso è possibile aggiungere informazioni descrittive.

    Aggiunta della descrizione dell'errore. Utilizzando un componente script, è possibile analizzare in modo semplice la descrizione dell'errore. Per ulteriori informazioni, vedere Ottimizzazione di un output degli errori con il componente script.

    Aggiunta del nome della colonna di errori. Per informazioni sul nome della colonna corrispondente all'ID di colonna salvato dall'output degli errori non è sufficiente il componente script, ma sono necessarie ulteriori operazioni. Ogni ID di colonna in un flusso di dati è univoco all'interno dell'attività Flusso di dati ed è persistente nel pacchetto in fase di progettazione. L'approccio seguente consente di aggiungere il nome di colonna all'output degli errori:

    1. Creare una tabella di ricerca dei nomi di colonna. Creare un'applicazione separata in cui viene utilizzata l'API di Integration Services per eseguire un'iterazione su ogni pacchetto salvato, ogni flusso di dati nel pacchetto, ogni oggetto nel flusso di dati e ogni input e output nell'oggetto del flusso di dati. Nell'applicazione l'ID di colonna e il nome di ogni colonna devono essere persistenti nella tabella di ricerca, insieme all'ID dell'attività Flusso di dati padre e a quello del pacchetto.

    2. Aggiungere il nome della colonna all'output. Aggiungere all'output degli errori una trasformazione Ricerca che consenta di eseguire una ricerca del nome della colonna nella tabella di ricerca creata al passaggio precedente. Per la ricerca è possibile utilizzare l'ID di colonna nell'output degli errori, l'ID di pacchetto, disponibile nella variabile di sistema System::PackageID, e l'ID dell'attività Flusso di dati, disponibile nella variabile di sistema System::TaskID.

Risoluzione dei problemi relativi all'esecuzione di pacchetti tramite la registrazione

Abilitando la registrazione è possibile tenere traccia di ciò che avviene durante l'esecuzione dei pacchetti. I provider di log consentono di acquisire informazioni sugli eventi specificati da utilizzare per un'analisi successiva e di salvare tali informazioni in una tabella di database, in un file flat, in un file XML o in un altro formato di output supportato.

  • Abilitazione della registrazione. È possibile ottimizzare l'output di registrazione selezionando solo gli eventi e le informazioni che si desidera acquisire. Per ulteriori informazioni, vedere Provider di log di Integration Services e Implementazione della registrazione nei pacchetti.

  • Selezionare l'evento Diagnostic del pacchetto per risolvere i problemi relativi al provider. Sono presenti nuovi messaggi di registrazione per il supporto della risoluzione dei problemi relativi all'interazione di un pacchetto con origini dati esterne. Per ulteriori informazioni, vedere la sezione Risoluzione dei problemi relativi a provider di dati esterni in questo argomento.

  • Miglioramento dell'output di registrazione predefinito. La registrazione comporta in genere l'accodamento di righe alla destinazione di registrazione ogni volta che viene eseguito un pacchetto. Sebbene ogni riga dell'output di registrazione identifichi il pacchetto in base al nome e all'identificatore univoco e identifichi inoltre l'esecuzione del pacchetto tramite un identificatore ExecutionID univoco, una grande quantità di output di registrazione in un unico elenco può essere difficile da analizzare.

    L'approccio seguente consente di migliorare l'output di registrazione predefinito e semplificare la generazione di report:

    1. Creare una tabella padre per la registrazione di ogni esecuzione di un pacchetto. In questa tabella padre è inclusa una singola riga per ogni esecuzione di un pacchetto e viene utilizzato l'identificatore ExecutionID per il collegamento ai record figlio nella tabella di registrazione di Integration Services. È possibile utilizzare un'attività Esegui SQL all'inizio di ogni pacchetto per creare questa nuova riga e registrare l'ora di inizio. È quindi possibile utilizzare un'altra attività Esegui SQL alla fine del pacchetto per aggiornare la riga con ora di fine, durata e stato.

    2. Aggiungere informazioni di controllo al flusso di dati. È possibile utilizzare la trasformazione Controllo per aggiungere alle righe del flusso di dati informazioni sull'esecuzione del pacchetto che ha creato o modificato ogni riga. La trasformazione Controllo rende disponibili nove informazioni, incluse quelle relative a PackageName ed ExecutionInstanceGUID. Per ulteriori informazioni, vedere Trasformazione Controllo. Se si desidera includere in ogni riga informazioni personalizzate a scopo di controllo, è possibile aggiungere le informazioni desiderate alle righe del flusso di dati utilizzando una trasformazione Colonna derivata. Per ulteriori informazioni, vedere Trasformazione Colonna derivata.

    3. Valutare l'opportunità di acquisire i dati sul conteggio delle righe. Prendere in considerazione la creazione di una tabella separata per le informazioni sul conteggio delle righe, in cui ogni istanza di esecuzione di un pacchetto è identificata tramite il relativo ExecutionID. Utilizzare la trasformazione Conteggio righe per salvare il conteggio delle righe in una serie di variabili in punti critici del flusso di dati. Al termine del flusso di dati, utilizzare un'attività Esegui SQL per inserire le serie di valori in una riga della tabella, per operazioni successive di analisi e creazione di report.

    Per ulteriori informazioni su questo approccio, vedere la sezione relativa a registrazione e controllo ETL nel Microsoft white paper Project REAL: Business Intelligence ETL Design Practices.

Risoluzione dei problemi relativi all'esecuzione di pacchetti tramite i file di dump del debug

In Integration Services è possibile creare file di dump del debug contenenti informazioni sull'esecuzione di un pacchetto. Per ulteriori informazioni, vedere Utilizzo dei file di dump del debug.

Risoluzione dei problemi relativi alla convalida in fase di esecuzione

A volte potrebbe non essere possibile connettersi alle origini dei dati oppure potrebbe non essere possibile convalidare parte dei pacchetti prima di avere eseguito alcune attività nei pacchetti. In Integration Services sono disponibili le caratteristiche descritte di seguito che consentono di evitare errori di convalida che verrebbero altrimenti generati a causa delle condizioni seguenti:

  • Configurazione della proprietà DelayValidation per gli elementi del pacchetto non validi quando il pacchetto viene caricato. È possibile impostare la proprietà DelayValidation su True per gli elementi del pacchetto la cui configurazione non è valida, per impedire errori di convalida quando il pacchetto viene caricato. Potrebbe ad esempio essere presente un'attività Flusso di dati in cui viene utilizzata una tabella di destinazione che non esiste fino a quando non viene creata in fase di esecuzione da un'attività Esegui SQL. La proprietà DelayValidation può essere attivata a livello di pacchetto oppure delle singole attività e dei singoli contenitori del pacchetto.

    La proprietà DelayValidation può essere impostata in un'attività Flusso di dati ma non nei singoli componenti del flusso di dati. È possibile ottenere un risultato simile impostando la proprietà ValidateExternalMetadata dei singoli componenti del flusso di dati su false. Quando, tuttavia, il valore di questa proprietà è impostato su false, il componente non riconosce le modifiche ai metadati delle origini dei dati esterne. Impostando la proprietà ValidateExternalMetadata su true, è possibile evitare problemi causati da blocchi nel database, in particolare quando nel pacchetto vengono utilizzate transazioni.

Risoluzione dei problemi relativi alle autorizzazioni in fase di esecuzione

Se si verificano errori quando si cerca di eseguire pacchetti distribuiti tramite SQL Server, gli account utilizzati potrebbero non disporre delle autorizzazioni necessarie. Per informazioni su come risolvere i problemi legati all'esecuzione di pacchetti dai processi di SQL Server Agent, vedere An SSIS package does not run when you call the SSIS package from a SQL Server Agent job step. Per ulteriori informazioni sull'esecuzione di pacchetti da SQL Server Agent, vedere Pianificazione dell'esecuzione di pacchetti SSIS in SQL Server Agent e Procedura: Esecuzione di un pacchetto.

Per connettersi a origini dati Excel o Access, SQL Server Agent richiede un account con autorizzazione di lettura, scrittura, creazione ed eliminazione dei file temporanei nella cartella specificata dalle variabili di ambiente TEMP e TMP.

Risoluzione dei problemi relativi ai componenti a 64 bit

Quando si verificano errori in un server a 64 bit con pacchetti che possono essere eseguiti correttamente in modalità a 32 bit o in server a 32 bit, considerare i problemi comuni seguenti. Per ulteriori informazioni, vedere Considerazioni sulla versione a 64 bit di Integration Services.

  • Alcuni provider di dati non sono disponibili nella piattaforma a 64 bit. In particolare, il provider Microsoft Jet OLE DB, necessario per la connessione alle origini dati di Excel o Access, non è disponibile in una versione a 64 bit.

  • I pacchetti DTS non possono essere eseguiti in modalità a 64 bit. Se nel pacchetto viene utilizzata l'attività Esegui pacchetto DTS 2000 per eseguire pacchetti DTS (Data Transformation Services) di SQL Server 2000, è necessario eseguire il pacchetto in modalità a 32 bit. Non è disponibile alcun tipo di supporto run-time per i pacchetti DTS.

Risoluzione dei problemi relativi agli errori senza descrizione

Se si verifica un errore di Integration Services a cui non è associata una descrizione, è possibile ottenere la descrizione in Guida di riferimento ai messaggi e agli errori di Integration Services cercando l'errore in base al relativo numero. Al momento, nell'elenco non sono incluse informazioni per la risoluzione dei problemi.

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.