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>" }
Datenbankobjekte¶
Das Snowflake Native SDK for Connectors bietet eine Reihe von Ansichten und Prozeduren, die beim Überprüfen des aktuellen Konnektorzustands hilfreich sind.
Ansichten:
PUBLIC.CONNECTOR_CONFIGURATION
(siehe Referenz zur Verbindungskonfiguration)PUBLIC.SYNC_STATUS
(siehe Referenz zum Sync-Status)PUBLIC.CONNECTOR_STATS
(siehe Referenz zu Konnektorstatistiken)PUBLIC.AGGREGATED_CONNECTOR_STATS
(siehe Referenz zu Konnektorstatistiken)
Prozeduren:
PUBLIC.GET_CONNECTOR_STATUS()
(siehe SQL-Hauptreferenz)PUBLIC.GET_CONNECTION_CONFIGURATION()
(siehe Referenz zur Verbindungskonfiguration)
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];
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 ProzedurPUBLIC.RESUME_CONNECTOR()
das Statusproblem behebenWenn der Konnektor im Status
PAUSING
„feststeckt“, kann ein weiterer Aufruf der ProzedurPUBLIC.PAUSE_CONNECTOR()
das Statusproblem behebenWenn die oben genannten Methoden fehlgeschlagen sind oder der Konnektor sich im Status
ERROR
befindet, kann die ProzedurPUBLIC.RECOVER_CONNECTOR_STATE(STRING)
verwendet werden, um den Statuswechsel zu erzwingen (siehe SQL-Hauptreferenz). Es wird empfohlen, den Wechsel in den StatusPAUSED
zu erzwingen und zu versuchen, den Konnektor mit dem VerfahrenPUBLIC.RESUME_CONNECTOR()
neu zu starten