Connecteur de pause

La mise en pause du connecteur est possible après l’assistant. Elle peut être exécutée après l’étape Finalize Configuration. 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.PAUSE_CONNECTOR(). Il peut être personnalisé en le remplaçant en SQL ou en utilisant PauseConnectorHandlerBuilder. Le processus inverse, qui consiste à mettre le connecteur en pause et à permettre à l’utilisateur de le redémarrer, est Reprendre connecteur.

Pour lancer cette procédure, l’utilisateur doit avoir le rôle d’application ADMIN.

L’étape du connecteur de mise en pause 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 (PAUSING)

  5. Rappel interne

  6. Mise en pause de Task Reactor (si Task Reactor est activé)

  7. Mise à jour du statut (PAUSED)

Exigences

Le connecteur de mise en pause nécessite au moins les fichiers SQL suivants pour être exécutés lors de l’installation de l’application native :

  • core.sql

  • configuration/app_config.sql

  • lifecycle/pause.sql

  • Recommandé : configuration/finalize_configuration.sql

Validation des privilèges

Pour mettre le connecteur en pause, le privilège EXECUTE TASK doit être accordé à l’application.

Cette validation ne peut pas être écrasée par l’utilisation de PauseConnectorHandlerBuilder 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 mettre le connecteur en pause, le statut interne du connecteur doit être STARTED.

Cette validation ne peut pas être écrasée par l’utilisation de PauseConnectorHandlerBuilder 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.PAUSE_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 PauseConnectorHandlerBuilder et en fournissant une implémentation personnalisée de l’interface PauseConnectorStateValidator.

Rappel interne

Le rappel interne est une autre étape personnalisable. Par défaut, elle appelle PUBLIC.PAUSE_CONNECTOR_INTERNAL(), qui renvoie 'response_code': 'OK'. Cette procédure permet à l’utilisateur d’effectuer toute procédure supplémentaire nécessaire lors de la mise en pause du connecteur. Par exemple, la mise en pause de tâches spécifiques au connecteur additionnel. Il peut être remplacé par le script SQL ou en utilisant un PauseConnectorHandlerBuilder pour fournir une implémentation personnalisée de l’interface PauseConnectorCallback.

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": "PAUSED",
    "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 réussit à mettre en pause toutes les tâches en arrière-plan et à faire passer son statut sur PAUSED, le message Connector successfully paused. sera renvoyé directement par le corps de la méthode PauseConnectorHandler. 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 [STARTED, PAUSING]

  • 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é