Scénario : Messaging direct et synchrone dans une même JVM

Composants Mediation Talend ESB Guide de référence

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

Dans ce scénario, un échange de messages est déclenché dans une sous-Route et consommé de manière synchrone dans une autre sous-Route, à l'aide du mécanisme Direct-VM. Du côté consommateur, le contenu du message est traité et affiché dans la console.

Construire le Job

  1. Dans la Palette, glissez-déposez les composants suivants dans l'espace de modélisation graphique : un cTimer, un cSetHeader, un cSetBody, deux cDirectVM et un cProcessor.

  2. Reliez le cTimer, le cSetHeader, le cSetBody et le premier cDirectVM à l'aide de liens Row > Route, afin de former une sous-Route.

  3. Reliez le second cDirectVM au composant cProcessor à l'aide d'un lien Row > Route, afin de former une autre sous-Route.

  4. Renommez les composants afin de mieux identifier leur rôle dans la Route.

Configurer les composants

Configurer la première sous-Route

  1. Double-cliquez sur le composant cTimer (nommé Starter dans cet exemple), pour afficher sa vue Basic settings.

  2. Dans le champ Repeat, saisissez 1 pour que l'échange de messages soit déclenché une seule fois. Laissez les autres paramètres tels qu'ils sont.

  3. Double-cliquez sur le composant cSetHeader (nommé Set_message_headers dans cet exemple) pour afficher sa vue Basic settings.

  4. Cliquez deux fois sur le bouton [+] afin d'ajouter deux en-têtes dans la table Headers et donnez-leur un nom et une valeur.

    Dans cet exemple, nommez respectivement les en-têtes Name et Company puis saisissez Bill et Talend comme valeurs.

  5. Double-cliquez sur le composant cSetBody (nommé Set_message_body dans cet exemple) pour afficher sa vue Basic settings.

  6. Sélectionnez SIMPLE dans la liste Language pour déclencher une seul échange de messages texte.

  7. Dans le champ Expression, saisissez Hi there entre guillemets doubles, comme corps du message.

  8. Double-cliquez sur le premier composant cDirectVM (nommé D-VM_producer dans cet exemple) pour afficher sa vue Basic settings.

  9. Sélectionnez un endpoint consommateur existant ou spécifiez le nom de l'endpoint consommateur.

    Dans cet exemple, nommez l'endpoint consommateur dvm, sélectionnez l'option Input Endpoint Name et saisissez le nom de l'endpoint consommateur dvm dans le champ Endpoint Name.

Configurer la seconde sous-Route

  1. Double-cliquez sur le second cDirectVM (nommé D-VM_consumer dans cet exemple) pour afficher sa vue Basic settings.

  2. Dans le champ Endpoint Name, saisissez dvm entre guillemets doubles, afin de nommer l'endpoint.

  3. Double-cliquez sur le cProcessor (nommé Show_message dans cet exemple) afin d'afficher sa vue Basic settings.

  4. Dans la zone Code, saisissez le code suivant pour afficher le contenu des en-têtes et corps de messages :

    exchange.getOut().setHeader("header1",exchange.getIn().getHeader("Name"));
    exchange.getOut().setHeader("header2",exchange.getIn().getHeader("Company"));
    exchange.getOut().setBody(exchange.getIn().getBody(String.class));
    System.out.println();
    System.out.println("Message for "+exchange.getOut().getHeader("header1")
    +" of "+exchange.getOut().getHeader("header2")+":");
    System.out.println(exchange.getOut().getBody(String.class));

Exécuter la Route

Cliquez sur l'onglet Run et cliquez sur le bouton Run pour exécuter votre Route. Vous pouvez également appuyez sur F6.

Résultat : Le message généré dans la première sous-Route est consommé de manière synchrone dans l'endpoint consommateur et affiché dans la console après traitement. L'échange de messages est déclenché une fois, comme configuré.