Reprendre connecteur¶
La reprise du connecteur est possible après l’assistant. Il peut être exécuté après l’étape Finalize Configuration
en plus de Pause Connector
. Cette étape permet à l’utilisateur de manipuler le statut du connecteur après son lancement. Le point d’entrée de cette phase est une procédure appelée PUBLIC.RESUME_CONNECTOR()
. Il peut être personnalisé en le remplaçant en SQL ou en utilisant ResumeConnectorHandlerBuilder
. Le processus inverse de reprise du connecteur, permettant à l’utilisateur de le suspendre, est Connecteur de pause.
Pour lancer cette procédure, l’utilisateur doit avoir le rôle d’application ADMIN
.
L’étape du connecteur de reprise se compose en interne de plusieurs phases. Certaines d’entre elles sont entièrement personnalisables et, par défaut, n’ont pas d’impact. Les phases sont les suivantes :
Validation des privilèges
Validation du statut
Validation de l’état
Mise à jour du statut (STARTING)
Rappel interne
Reprise de Task Reactor (si Task Reactor est activé)
Mise à jour du statut (STARTED)
Exigences¶
La reprise du connecteur nécessite au moins l’exécution des fichiers SQL suivants lors de l’installation de l’application native :
core.sql
configuration/app_config.sql
lifecycle/resume.sql
Recommandé :
lifecycle/pause.sql
Recommandé :
configuration/finalize_configuration.sql
Validation des privilèges¶
Pour reprendre le connecteur, le privilège EXECUTE TASK
doit être accordé à l’application.
Cette validation ne peut pas être écrasée par l’utilisation de ResumeConnectorHandlerBuilder
ni par l’écrasement d’une procédure stockée. Toutefois, il est possible de mettre en œuvre un gestionnaire (handler) personnalisé.
Validation du statut¶
Pour reprendre le connecteur, le statut interne du connecteur doit être PAUSED
.
Cette validation ne peut pas être écrasée par l’utilisation de ResumeConnectorHandlerBuilder
ni par l’écrasement d’une procédure stockée. Toutefois, il est possible de mettre en œuvre un gestionnaire (handler) personnalisé.
Validation de l’état¶
Dans le cas où des validations personnalisées supplémentaires doivent être satisfaites, il existe une procédure stockée PUBLIC.RESUME_CONNECTOR_VALIDATE()
, qui peut être personnalisée par l’utilisateur. Par défaut, cette procédure renvoie simplement 'response_code': 'OK'
. La procédure peut être personnalisée en l’écrasant par le biais de SQL ou en utilisant ResumeConnectorHandlerBuilder
et en fournissant une implémentation personnalisée de l’interface ResumeConnectorStateValidator
.
Rappel interne¶
Le rappel interne est une autre étape personnalisable. Par défaut, elle appelle PUBLIC.RESUME_CONNECTOR_INTERNAL()
, qui renvoie 'response_code': 'OK'
. Cette procédure permet à l’utilisateur d’effectuer toutes les tâches supplémentaires nécessaires lors de la reprise du connecteur. Par exemple, la reprise de tâches supplémentaires spécifiques au connecteur. Elle peut être remplacée par le script SQL ou en utilisant un ResumeConnectorHandlerBuilder
pour fournir une implémentation personnalisée de l’interface ResumeConnectorCallback
.
Mise à jour du statut¶
Lorsque toutes les phases ci-dessus sont achevées avec succès, le statut interne du connecteur est mis à jour :
{
"status": "STARTED",
"configurationStatus": "FINALIZED"
}
Pour le diagramme complet des transitions d’état, voir Débit du connecteur.
Réponse¶
Réponse aboutie¶
Lorsque la procédure reprend avec succès toutes les tâches en arrière-plan et passe au statut tocSTARTED, le message Connector successfully resumed.
est renvoyé directement par le corps de la méthode ResumeConnectorHandler. Il est recommandé d’utiliser le format suivant :
{ "response_code": "OK" }
Erreur de réponse¶
En cas d’erreur, la réponse suivra le format ci-dessous :
{ "response_code": "<ERROR_CODE>", "message": "error message" }
Les codes d’erreur possibles sont les suivants :
INVALID_CONNECTOR_STATUS
- La procédure a été appelée sur un connecteur dont l’état est différent de[PAUSED, STARTING]
CONNECTOR_STATUS_NOT_FOUND
- L’enregistrement du statut du connecteur n’existe pas dans la base de données (indépendamment de la contribution de l’utilisateur à cette zone de préparation - une erreur interne)ROLLBACK_CODE
- Une erreur s’est produite, mais les modifications ont été annulées avec succès.INTERNAL_ERROR
- Quelque chose s’est mal passé en interne, le message doit être descriptifUNKNOWN_ERROR_CODE
- Une erreur inconnue s’est produite et le connecteur est maintenant dans un état non spécifié