Konnektor anhalten¶
Nach dem Assistenten ist es möglich, den Konnektor anzuhalten. Dies kann nach dem Schritt Finalize Configuration
ausgeführt werden. Dieser Schritt ermöglicht es dem Benutzer, den Status des Konnektors nach dem Start zu bearbeiten. Der Einstiegspunkt für diese Phase ist eine Prozedur namens PUBLIC.PAUSE_CONNECTOR()
. Diese kann angepasst werden, indem sie in SQL ersetzt wird oder indem PauseConnectorHandlerBuilder
verwendet wird. Der umgekehrte Prozess des Anhaltens des Konnektors, der es dem Benutzer ermöglicht, ihn neu zu starten, ist Konnektor fortsetzen.
Zum Aufrufen dieser Prozedur muss dem Benutzer die Anwendungsrolle ADMIN
zugewiesen sein.
Der Schritt „Konnektor anhalten“ besteht intern aus mehreren Phasen. Einige von ihnen sind vollständig anpassbar und tun standardmäßig gar nichts. Die Phasen sind wie folgt:
Validierung der Berechtigungen
Validierung des Status
Validierung des Zustands
Aktualisierung des Status (PAUSING)
Interner Callback
Anhalten von Task Reactor (wenn Task Reactor aktiviert ist)
Aktualisierung des Status (PAUSED)
Anforderungen¶
„Konnektor anhalten“ erfordert mindestens die folgenden SQL-Dateien, die während der Installation der nativen App ausgeführt werden müssen:
core.sql
configuration/app_config.sql
lifecycle/pause.sql
Empfohlen:
configuration/finalize_configuration.sql
Validierung der Berechtigungen¶
Um den Konnektor anzuhalten, muss der Anwendung die Berechtigung EXECUTE TASK
erteilt werden.
Diese Validierung kann weder durch die Verwendung von PauseConnectorHandlerBuilder
noch durch das Überschreiben einer gespeicherten Prozedur überschrieben werden. Es ist jedoch möglich, einen kundenspezifischen Handler zu implementieren.
Validierung des Status¶
Um den Konnektor anzuhalten, muss der Konnektor den internen Status STARTED
haben.
Diese Validierung kann weder durch die Verwendung von PauseConnectorHandlerBuilder
noch durch das Überschreiben von gespeicherten Prozeduren überschrieben werden. Es ist jedoch möglich, einen kundenspezifischen Handler zu implementieren.
Validierung des Zustands¶
Für den Fall, dass zusätzliche kundenspezifische Validierungen erforderlich sind, gibt es eine gespeicherte Prozedur PUBLIC.PAUSE_CONNECTOR_VALIDATE()
, die vom Benutzer angepasst werden kann. Standardmäßig gibt diese Prozedur einfach 'response_code': 'OK'
zurück. Die Prozedur kann angepasst werden, indem das SQL-Skript überschrieben wird oder indem PauseConnectorHandlerBuilder
verwendet und eine kundenspezifische Implementierung der PauseConnectorStateValidator
-Schnittstelle bereitgestellt wird.
Interner Callback¶
Der interne Callback ist ein weiterer anpassbarer Schritt. Standardmäßig wird PUBLIC.PAUSE_CONNECTOR_INTERNAL()
aufgerufen, das 'response_code': 'OK'
zurückgibt. Dieses Verfahren ermöglicht es dem Benutzer, zusätzliche Aufgaben auszuführen, die beim Anhalten des Konnektors erforderlich sind, wie z. B. das Anhalten zusätzlicher Konnektor-spezifischer Aufgaben. Die Prozedur kann über das SQL-Skript oder durch Verwendung von PauseConnectorHandlerBuilder
überschrieben werden, um eine kundenspezifische Implementierung der PauseConnectorCallback
-Schnittstelle bereitzustellen.
Aktualisierung des Status¶
Wenn alle oben genannten Phasen erfolgreich abgeschlossen sind, wird der interne Status des Konnektors wie folgt aktualisiert:
{
"status": "PAUSED",
"configurationStatus": "FINALIZED"
}
Eine umfassende Abbildung der Zustandsübergänge finden Sie unter Konnektorablauf.
Antwort¶
Erfolgreiche Antwort¶
Wenn die Prozedur erfolgreich alle Aufgaben im Hintergrund anhält und ihren Status in PAUSED ändert, wird die Meldung Connector successfully paused.
direkt vom Textkörper der Methode PauseConnectorHandler
zurückgegeben. Es wird empfohlen, das folgende Format zu verwenden.
{ "response_code": "OK" }
Fehlerantwort¶
Im Falle eines Fehlers erfolgt die Antwort in folgendem Format:
{ "response_code": "<ERROR_CODE>", "message": "error message" }
Mögliche Fehlercodes sind:
INVALID_CONNECTOR_STATUS
– Die Prozedur wurde auf einem Konnektor mit einem anderen Zustand als[STARTED, PAUSING]
aufgerufen.CONNECTOR_STATUS_NOT_FOUND
– Der Datensatz mit dem Konnektorstatus existiert nicht in der Datenbank (unabhängig von den Eingaben des Benutzers in dieser Phase – ein interner Fehler)ROLLBACK_CODE
– Es ist ein Fehler aufgetreten, aber die Änderungen wurden erfolgreich rückgängig gemacht.INTERNAL_ERROR
– Es gibt intern eine Problem; die Meldung sollte beschreibend sein.UNKNOWN_ERROR_CODE
– Ein unbekannter Fehler ist aufgetreten und der Konnektor befindet sich nun in einem nicht spezifizierten Zustand