Tools zur Behandlung von Problemen mit Paketverbindungen

Gilt für:SQL ServerSSIS Integration Runtime in Azure Data Factory

Integration Services enthält Funktionen und Tools, mit denen Sie Verbindungsprobleme zwischen Paketen und den Datenquellen behandeln können, aus denen Daten von Paketen extrahiert und geladen werden.

Behandlung von Problemen mit externen Datenanbietern

Viele Paketfehler treten während Interaktionen mit externen Datenanbietern auf. Die von diesen Anbietern an Integration Services zurückgegebenen Meldungen bieten jedoch häufig nicht genug Informationen, um mit der Problembehandlung der Interaktion zu beginnen. Um diesem Bedarf bei der Problembehandlung gerecht zu werden, enthält Integration Services Protokollierungsmeldungen, mit denen Sie die Interaktion eines Pakets mit externen Datenquellen behandeln können.

  • Aktivieren Sie die Protokollierung, und wählen Sie das Diagnostic-Ereignis des Pakets aus, um die Meldungen zur Problembehandlung anzuzeigen. Mit den folgenden Komponenten von Integration Services kann vor und nach jedem Aufruf an einen externen Datenanbieter eine Meldung in das Protokoll geschrieben werden:

    • OLE DB-Verbindungs-Manager, OLE DB-Quelle und OLE DB-Ziel

    • ADO.NET-Verbindungs-Manager und ADO.NET-Quelle

    • SQL-Task ausführen

    • Lookup-Transformation, OLE DB-Befehl-Transformation und Transformation für langsam veränderliche Dimensionen

    Die Protokollmeldungen enthalten den Namen der aufgerufenen Methode. Diese Protokollmeldungen können beispielsweise die Open-Methode eines Connection-Objekts von OLE DB oder die ExecuteNonQuery-Methode eines Command-Objekts enthalten. Die Nachrichten haben folgendes Format, wobei „%1!s!“ ist ein Platzhalter für die Informationen zur Methode:

    ExternalRequest_pre: The object is ready to make the following external request: '%1!s!'.  
    ExternalRequest_post: '%1!s!'. The external request has completed.  
    

    Überprüfen Sie zur Problembehandlung der Interaktion mit dem externen Datenanbieter, ob für jede „Vorher“-Meldung (ExternalRequest_pre) eine entsprechende „Nachher“-Meldung (ExternalRequest_post) vorhanden ist. Wenn keine entsprechende "Nachher"-Meldung vorhanden ist, hat der externe Datenanbieter nicht wie erwartet reagiert.

    Im folgenden Beispiel sind einige Beispielzeilen aus einem Protokoll dargestellt, in dem diese Meldungen für die Protokollierung enthalten sind:

    ExternalRequest_pre: The object is ready to make the following external request: 'ITransactionJoin::JoinTransaction'.  
    ExternalRequest_post: 'ITransactionJoin::JoinTransaction succeeded'. The external request has completed.  
    ExternalRequest_pre: The object is ready to make the following external request: 'IDbConnection.Open'.  
    ExternalRequest_post: 'IDbConnection.Open succeeded'. The external request has completed.  
    ExternalRequest_pre: The object is ready to make the following external request: 'IDbConnection.CreateCommand'.  
    ExternalRequest_post: 'IDbConnection.CreateCommand finished'. The external request has completed."  
    ExternalRequest_pre: The object is ready to make the following external request: 'IDbCommand.ExecuteReader'.  
    ExternalRequest_post: 'IDbCommand.ExecuteReader finished'. The external request has completed."  
    ExternalRequest_pre: The object is ready to make the following external request: 'IDataReader.GetSchemaTable'.  
    ExternalRequest_post: 'IDataReader.GetSchemaTable finished'. The external request has completed."  
    ExternalRequest_pre: The object is ready to make the following external request: 'IDataReader.Close'.  
    ExternalRequest_post: 'IDataReader.Close finished'. The external request has completed."  
    ExternalRequest_pre: The object is ready to make the following external request: 'IDbConnection.Close'.  
    ExternalRequest_post: 'IDbConnection.Close finished'. The external request has completed."