cErrorHandler

Composants Mediation Talend ESB Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Talend Data Fabric
Talend ESB
Talend MDM Platform
Talend Data Services Platform
task
Création et développement
EnrichPlatform
Studio Talend

Propriétés du cErrorHandler

Famille du composant

Exception Handling

Fonction

Le composant cErrorHandler fournit de multiples stratégies pour gérer les erreurs survenues dans une Route.

Objectif

Le cErrorHandler est utilisé pour traiter ls erreurs lors de routage de messages.

Basic settings

Default Handler

Ce gestionnaire d'erreur ne supporte pas la file dead letter (file des messages non reçus) et retourne les exceptions à l'expéditeur.

  

Set Maximum Redeliveries : cochez cette case pour configurer le nombre de tentatives de livraison, dans le champ Maximum Redeliveries (int).

  

Set Redelivery Delay : cochez cette case pour paramétrer le temps avant la première tentative de nouvelle livraison (en millisecondes) dans le champ Redelivery Delay (long).

  

Set Retry Attempted Log Level : cochez cette case pour sélectionner le niveau de log des messages dans la liste Level lorsque les tentatives se produisent.

  

Asynchronized Delayed Redelivery : cochez cette case pour permettre une nouvelle livraison asynchrone différée.

  

More Configurations by Code : cochez cette case afin de saisir les code, dans le champ Code pour une configuration avancée.

 

Dead Letter

Ce gestionnaire supporte les tentatives de livraison d'échange de messages un certain nombre de fois avant de l'envoyer dans un endpoint de messages non reçus.

  

Dead Letter Uri : cochez cette case pour configurer l'endpoint de la file de messages non reçus.

Configurez les autres paramètres de la même manière que pour le Default Handler.

 

Logging Handler

Ce gestionnaire capture les exceptions.

  

Set Logger Name : cochez cette case afin de nommer le logger, dans le champ Name.

  

Set Log Level : cochez cette case afin de sélectionner le niveau de log, dans la liste Level.

Utilisation

Le composant cErrorHandler peut être utilisé séparément ou en tant que composant intermédiaire ou de fin dans une Route. S'il est utilisé séparément, il permet de gérer les erreurs dans toutes les sous-routes. S'il est utilisé au milieu ou à la fin d'une sous-route, il gère les exceptions survenant dans les composants de cette sous-route, avant ou après le cErrorHandler.

Scénario : Capturer l'exception retournée durant un échange client/serveur

Dans ce scénario, un serveur Jetty est démarré avant qu'un navigateur client demande d'accéder au serveur. Une exception est retournée du côté serveur et capturée par le cErrorHandler.

Déposer et relier les composants

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un cMessagingEndpoint, un cErrorHandler et un cProcessor, respectivement nommés Jetty_Server, Error_Handler et Throw_Exception.

  2. Reliez le cMessagingEndpoint au cProcessor à l'aide d'un lien Row > Route.

Configurer les composants

  1. Double-cliquez sur le cErrorHandler pour ouvrir sa vue Basic settings.

  2. Sélectionnez l'option Logging Handler afin de capturer les exceptions retournées.

  3. Double-cliquez sur le composant cMessagingEndpoint afin d'ouvrir sa vue Basic settings.

  4. Dans le champ Uri, saisissez jetty:http://localhost:8889/service pour spécifier le serveur Jetty.

  5. Cliquez sur l'onglet Advanced settings pour configurer les propriétés avancées du composant.

  6. Dans la table Dependencies, cliquez sur le bouton [+] afin d'ajouter une ligne et sélectionnez jetty dans la liste Camel component.

  7. Double-cliquez sur le cProcessor pour ouvrir sa vue Basic settings.

  8. Dans le champ Code, saisissez throw new Exception("server side error") afin de retourner une exception.

  9. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser du code et exécuter la Route

  1. Cliquez sur l'onglet Code au bas de l'espace de modélisation graphique afin de visualiser le code généré.

    Comme affiché ci-dessus, la Route commence à partir de (from) l'endpoint Jetty_Server et retourne l'exception server side error via le cProcessor_1.

  2. Appuyez sur F6 pour exécuter la Route.

    Le serveur Jetty a démarrré.

  3. Lancez un navigateur Web et saisissez http://localhost:8889/service (L'URI du serveur Jetty configurée précédemment) dans la barre d'adresse afin d'accéder au serveur.

    Comme affiché ci-dessus, la requête a échoué à cause d'une erreur du serveur.

  4. Retournez dans le Studio et vérifiez les résultats dans l'onglet Run.

    Comme affiché ci-dessus, le cErrorHandler a capturé l'exception au niveau ERROR.