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 :

  1. Validation des privilèges

  2. Validation du statut

  3. Validation de l’état

  4. Mise à jour du statut (STARTING)

  5. Rappel interne

  6. Reprise de Task Reactor (si Task Reactor est activé)

  7. 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"
}
Copy

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"
}
Copy

Erreur de réponse

En cas d’erreur, la réponse suivra le format ci-dessous :

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

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 descriptif

  • UNKNOWN_ERROR_CODE - Une erreur inconnue s’est produite et le connecteur est maintenant dans un état non spécifié