Problembehandlung

Unter diesem Thema finden Sie Richtlinien zur Problembehandlung bei Problemen mit dem Snowflake Native SDK for Connectors. Wenn Sie die Ursache eines bestimmten Fehlers herausfinden möchten, benötigen Sie geeignete Tools, die Ihnen die Problembehandlung erleichtern. Aus diesem Grund bietet das Snowflake Native SDK for Connectors eine Reihe von Prozeduren, Ansichten und anderen Methoden zur effektiven Problembehandlung des Konnektors.

Antworten von Prozeduren

Wenn mit dem Konnektor etwas schief läuft oder wenn der Benutzer aufgrund des Zustands des Konnektors eine bestimmte Prozedur nicht erfolgreich ausführen kann, sollte die erste Quelle für die Problembehandlung die Antwort der Prozedur sein. Im Snowflake Native SDK for Connectors ist die Fehlerantwort von Prozeduren standardisiert. Die Antwort wird als VARIANT mit zwei Feldern zurückgegeben, die immer vorhanden sind:

  • response_code – Der Wert dieses Feldes ist bei einer Fehlerantwort ein Fehlercode, z. B. INVALID_CONNECTOR_STATUS.

  • message – Der Wert dieses Feldes ist eine Meldung, die weitere Informationen zu dem aufgetretenen Fehler enthält.

Struktur einer Fehlerantwort:

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>"
}
Copy

Datenbankobjekte

Das Snowflake Native SDK for Connectors bietet eine Reihe von Ansichten und Prozeduren, die beim Überprüfen des aktuellen Konnektorzustands hilfreich sind.

Ansichten:

Prozeduren:

Ereignistabelle

Standardmäßig verwenden in Java implementierte Prozeduren, die vom SDK bereitgestellt werden, ConnectorErrorHelper, um ausgelöste Ausnahmen während der Ausführung der jeweiligen Prozedur zu verpacken. Abgesehen vom Wrapping der ausgelösten Ausnahme und der Zuordnung zu ConnectorResponse mit einem Fehlercode, protokolliert die Standardimplementierung von ConnectorErrorHelper Ereignisse, die auf den ausgelösten Ausnahmen basieren, in der Ereignistabelle, wenn diese im Konto des Kunden eingerichtet ist. Weitere Informationen zur Verwendung von Ereignistabellen finden Sie in der offiziellen Snowflake-Dokumentation.

Es besteht die Möglichkeit, die vom Snowflake Native SDK for Connectors generierten Protokolleinträge aus der Ereignistabelle herauszufiltern, wenn der Name der Anwendungsinstanz bekannt ist. Außerdem gibt es die Möglichkeit, Protokolleinträge von Fehlern herauszufiltern, die in den gängigsten Teilen des Konnektors aufgetreten sind.

Beispielabfrage:

SELECT * FROM PLATFORM_CI_TOOLS.PUBLIC.EVENTS
    WHERE RESOURCE_ATTRIBUTES:"snow.database.name" LIKE '<INSTANCE_NAME>'
    [AND SCOPE:"name" LIKE '<ERROR_CODE>']
    [ORDER BY timestamp DESC];
Copy

Mögliche Fehlercodes:

  • CONFIGURE_CONNECTOR_FAILED – Tritt auf, wenn der Schritt „Konnektorkonfiguration“ im Assistenten fehlgeschlagen ist.

  • SET_CONNECTION_CONFIGURATION_FAILED – Tritt auf, wenn der Schritt „Verbindungskonfiguration“ im Assistenten fehlgeschlagen ist.

  • FINALIZE_CONNECTOR_CONFIGURATION_FAILED – Tritt auf, wenn der Schritt „Konnektorkonfiguration abschließen“ im Assistenten fehlgeschlagen ist.

  • PAUSE_CONNECTOR_FAILED – Tritt auf, wenn der Prozess „Konnektor anhalten“ fehlgeschlagen ist.

  • RESUME_CONNECTOR_FAILED – Tritt auf, wenn der Prozess „Konnektor fortsetzen“ fehlgeschlagen ist.

Wiederherstellen des Konnektorstatus

Wenn während des Anhaltens oder Fortsetzen des Prozesses ein nicht erfasster Fehler auftritt, der dazu führt, dass der Konnektor keinen Rollback des Prozess durchführt und unerwartet fehlschlägt, kann ein ERROR-Konnektorstatus gesetzt werden. Wenn diese Prozesse aus irgendeinem Grund plötzlich abgebrochen werden, kann es sein, dass der Konnektor in einem STARTING- oder PAUSING-Konnektorstatus „feststeckt“.

Solche Probleme sollten mit den oben genannten Methoden diagnostiziert werden und eine geeignete Reparatur sollte versucht werden. In vielen Fällen kann eine vollständige Neuinstallation des Konnektors erforderlich sein. Wenn die Reparatur jedoch erfolgreich war und das einzige verbleibende Problem der „festsitzende“ Konnektor ist, gibt es einige mögliche Lösungen:

  • Wenn der Konnektor im Status STARTING „feststeckt“, kann ein weiterer Aufruf der Prozedur PUBLIC.RESUME_CONNECTOR() das Statusproblem beheben

  • Wenn der Konnektor im Status PAUSING „feststeckt“, kann ein weiterer Aufruf der Prozedur PUBLIC.PAUSE_CONNECTOR() das Statusproblem beheben

  • Wenn die oben genannten Methoden fehlgeschlagen sind oder der Konnektor sich im Status ERROR befindet, kann die Prozedur PUBLIC.RECOVER_CONNECTOR_STATE(STRING) verwendet werden, um den Statuswechsel zu erzwingen (siehe SQL-Hauptreferenz). Es wird empfohlen, den Wechsel in den Status PAUSED zu erzwingen und zu versuchen, den Konnektor mit dem Verfahren PUBLIC.RESUME_CONNECTOR() neu zu starten