tMomInput

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Data Quality
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Open Studio for Data Integration
task
Gouvernance de données
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

Fonction

Ce composant récupère un message d'une file d'attente d'un système Middleware orienté Message (MOM) et le passe au composant suivant.

Objectif

Le tMomInput permet de mettre en place des communications asynchrones via un serveur MOM.

Propriétés du tMomInput

Famille du composant

Internet

 

Basic settings

Use existing connection

Cochez cette case et sélectionnez le composant de connexion adéquat à partir de la liste Component List pour réutiliser les paramètres d'une connexion que vous avez déjà définie.

Notez que lorsqu'un Job contient un Job parent et un Job enfant, la liste Component List présente uniquement les composants de connexion du Job du même niveau.

 

Keep Listening

Cochez cette case pour consulter en continu le serveur MOM pour récupérer les nouveaux messages.

Cette case n'est pas disponible lorsque vous sélectionnez ActiveMQ, dans la liste MQ server et que la case receive number of messages est cochée.

 

Sleeping time (in sec)

Saisissez en secondes l'intervalle de temps durant lequel le message suivant doit être reçu.

Ce champ est disponible dans les situations suivantes :

  • JBoss Messaging est sélectionné dans la liste MQ server et la case Keep Listening est cochée.

  • ActiveMQ est sélectionné dans la liste MQ server et la case Keep Listening est cochée.

  • ActiveMQ est sélectionné dans la liste MQ server et les cases receive number of messages et Timeout for receiver sont cochées.

 

receive number of messages

Cochez cette case pour configurer le nombre maximal de messages pouvant être reçus.

Cette case est disponible uniquement lorsque vous sélectionnez ActiveMQ dans la liste MQ server et que la case Keep Listening est cochée.

 

maximum messages

Saisissez le nombre maximal de messages pouvant être reçus.

Ce champ est disponible lorsque vous cochez la case receive number of messages.

 

Timeout for receiver

Cochez cette case et spécifiez l'intervalle de temps avant suspension de la réception, dans le champ Sleeping time (in sec).

Cette case est disponible lorsque la case receive number of messages est cochée.

 Failover

Cochez cette case pour utiliser le transport pour le failover ActiveMQ. Pour plus d'informations concernant le transport relatif au failover, consultez Failover Transport Reference (en anglais).

Cette case est disponible lorsque vous sélectionnez ActiveMQ dans la liste MQ Server et que la case Static Discovery est décochée.

 

Static Discovery

Cochez cette case pour utiliser le mécanisme de transport statique ActiveMQ. Pour plus d'informations concernant le transport statique, consultez Static Transport Reference (en anglais).

Cette case est disponible lorsque vous sélectionnez ActiveMQ dans la liste MQ Server et que la case Static Discovery est décochée.

 

URI parameters

Saisissez les paramètres de l'URI.

Ce champ est disponible lorsque la case Failover ou Static Discovery est cochée.

 

MQ server

Sélectionnez dans la liste le type de serveur MQ auquel se connecter : ActiveMQ, JBoss Messaging, ou WebSphere MQ. En fonction du serveur sélectionné, les paramètres diffèrent légèrement.

 

Use SSL Transport

Cochez cette case pour utiliser le transport ActiveMQ SSL. Pour plus d'informations concernant le transport SSL, consultez SSL Transport Reference (en anglais).

Cette case est disponible uniquement lorsque vous sélectionnez ActiveMQ dans la liste MQ server.

 

Host

Renseignez le nom de l'hôte ou l'adresse IP du serveur MQ

 

Port

Saisissez le numéro du port d'écoute du serveur MQ.

 

Username et Password

Identifiant de connexion au serveur.

Pour saisir le mot de passe, cliquez sur le bouton [...] à côté du champ Password, puis, dans la boîte de dialogue qui s'ouvre, saisissez le mot de passe entre guillemets doubles et cliquez sur OK afin de sauvegarder les paramètres.

 

Channel

Spécifiez le nom du canal via lequel la connexion est établie. La valeur par défaut est DC.SVRCONN.

Ce champs est disponible uniquement lorsque vous sélectionnez WebSphere MQ dans la liste MQ server.

 

Message From

Saisissez la source du message, telle qu'attendue par le serveur. Celle-ci peut être composé du type et du nom de la source, par exemple : queue/A ou topic/testtopic.

Notez que ce champ est sensible à la casse.

Ce champ est disponible si vous sélectionnez ActiveMQ ou JBoss Messaging dans la liste MQ Server.

 

Message Type

Sélectionnez le type de message : topic ou queue.

Cette liste est disponible si vous sélectionnez ActiveMQ ou JBoss Messaging dans la liste MQ Server.

 

Message Body Type

Sélectionnez le type de message : Text Message, Bytes Message ou Map Message.

 

Schema et Edit Schema

Un schéma est une description de lignes, il définit le nombre de champs qui sont traités et passés au composant suivant.

Le schéma du composant tMomInput est composé de deux colonnes : From et Message, dont le nom est en lecture seule.

 

QueueManager

Spécifiez le nom du gestionnaire des files d'attente auquel la connexion est établie.

Ce champ est disponible uniquement lorsque vous sélectionnez WebSphere MQ dans la liste MQ server.

 

MessageQueue

Saisissez le nom de la file d'attente des messages dans laquelle les applications de mise en file d'attente mettent les messages.

Ce champ est disponible uniquement lorsque vous sélectionnez WebSphere MQ dans la liste MQ server.

 

Is using message id to fetch

Cochez cette case pour appliquer un filtre portant sur les messages id, filtre que vous déterminerez dans le champ Message id.

Cette case est disponible lorsque vous sélectionnez Text Message ou Byte Message dans la liste Message Body Type.

 

Commit (delete message after read from the queue)

Cochez cette case afin de forcer le commit après lecture de chaque message dans la file d'attente.

Ce champ est disponible uniquement lorsque vous sélectionnez WebSphere MQ dans la liste MQ server et que la case Browse Message est décochée dans la vue Advanced settings.

 

Backout messages to input queue

Cochez cette case pour remettre dans la file le message après l'avoir lu.

Cette case et la case Browse Message de la vue Advanced settings vous permettent de lire des messages depuis la file sans les détruire. Pour plus d'informations, consultez https://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/csqzaw07.pdf.

Cette case est disponible uniquement lorsque vous sélectionnez WebSphere MQ dans la liste MQ server et que la case Keep listening est décochée. Pour plus d'informations, consultez le Guide MQSeries Using Java (en anglais).

 

Backout messages to backout queue (when backoutCount of message reach the threshold value)

Cochez cette case pour effectuer un backout sur les messages dans la file de backout définie dans le gestionnaire Websphere MQ lorsque le nombre de backout atteint le seuil configuré, qui est une propriété de la file du serveur Websphere MQ.

Cette case est disponible lorsque vous sélectionnez WebSphere MQ dans la liste MQ server et que les cases Keep Listening, Commit (delete message after read from the queue) et Browse message sont décochées.

 

Set Transacted

Cochez cette case pour utiliser les transactions dans la session. Pour plus d'informations concernant ce paramètre, consultez https://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/csqzaw07.pdf (en anglais).

Note

Cochez cette case pour ignorer les paramètres de la liste Acknowledgement Mode dans la vue Advanced settings du tMomInput.

Cette case est disponible uniquement lorsque vous sélectionnez ActiveMQ dans la liste MQ Server.

 

start server

Cochez cette case pour forcer le démarrage du serveur ActiveMQ.

Cette case est disponible uniquement lorsque vous sélectionnez ActiveMQ dans la liste MQ server.

Advanced settings

Additional options

Définissez dans la table les options de transport supplémentaires. Cette table est disponible uniquement si vous avez coché la case Failover ou Static Discovery dans la vue Basic settings.

  • Option name : nom de l'option.

  • Option value : valeur de l'option.

Par exemple, saisissez maxReconnectAttempts dans le champ Option name puis 0 dans le champ Option value afin qu'aucune tentative ne soit effectuée pour récupérer la connexion lorsqu'aucun serveur n'est disponible.

Pour plus d'informations concernant les options de transport liées au failover, consultez Failover Transport Reference (en anglais).

Pour plus d'informations concernant les options de transport statique, consultez Static Transport Reference (en anglais).

 

Acknowledgement Mode

Sélectionnez dans la liste un mode d'accusé de réception pour indiquer que le client a bien reçu le(s) message(s) :

Auto Acknowledge : avec ce mode d'accusé de réception, l'acquittement se fait automatiquement, le client reçoit l'accusé de réception à la réception du message, qu'il soit traité ou non par l'application.

Client Acknowledge : avec ce mode d'accusé réception, le client accuse réception d'un message en appelant la méthode d'accusé réception du message.

Dups OK Acknowledge : ce mode d'accusé réception permet d'indiquer au client que le message peut être envoyé plusieurs fois à une destination. Ce mode permet d'améliorer les performances de certains clients, lorsque les messages sont nombreux.

Pour plus d'informations concernant l'utilisation des en-têtes JMS, consultez https://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/csqzaw07.pdf (en anglais).

Note

Si la case Set Transacted du tMomOutput est cochée, l'option Acknowledgement Mode est ignorée. Cette case est activée lorsque le serveur MQ est ActiveMQ ou JBoss Messaging.

 

Get Jms Header

Cochez cette case pour recevoir les en-têtes JMS via le mapping des champs JMS vers les champs MQ Series sur le serveur MQ. Lorsque cette case est cochée, vous pouvez spécifier le nom de l'en-tête JMS ainsi que le nom de la colonne de référence correspondante dans la (les) ligne(s) ajoutée(s) en cliquant sur le bouton [+] sous la table Parameters. Pour plus d'informations concernant l'utilisation des en-têtes JMS, consultez le Chapitre 12 de MQSeries Using Java (en anglais).

Ce champ est disponible si vous sélectionnez ActiveMQ ou JBoss Messaging dans la liste MQ Server.

 

Get Jms Properties

Cochez cette case pour recevoir les propriétés JMS mappées dans les champs MQMD. Lorsque cette case est cochée, vous pouvez spécifier le nom, le type et le nom de la colonne de référence dans la (les) ligne(s) ajoutée(s) en cliquant sur le bouton [+] sous la table Parameters. Pour plus d'informations concernant l'utilisation des propriétés JMS, consultez le Chapitre 12 de MQSeries Using Java.

Ce champ est disponible si vous sélectionnez ActiveMQ ou JBoss Messaging dans la liste MQ Server.

Browse message

Cochez cette case afin de désactiver les options Commit (delete message after read from the queue) et Backout messages to input queue dans la vue Basic settings et d'ouvrir la file pour parcourir les messages.

Note

Cette case ainsi que la case Backout messages to input queue dans la vue Basic settings vous permettent de lire des messages de manière non destructive dans la file. La case Browse message est visible uniquement lorsque la case Backout messages to input queue est décochée. Pour plus d'informations, consultez MQC: MQOO_BROWSE (en anglais).

 

Get MQMD Fields

Cochez cette case pour définir un ou plusieurs Message Descriptor(s) en ajoutant de nouveaux champs pour MQMD (Message queuing message descriptor) dans le tableau Parameter :

Field Name : sélectionnez un ou plusieurs descripteur(s) de messages dans la liste afin de récupérer les informations de l'en-tête du message.

Reference Column Name : Informations d'en-tête et propriétés du message.

Pour plus d'informations, consultez Fields for MQMD (en anglais).

Ce champ est disponible si vous sélectionnez ActiveMQ ou JBoss Messaging dans la liste MQ Server.

 

Include Header

Cochez cette case pour définir l'en-tête du message :

MQRFH2 fixed Portion : Cochez cette case et cliquez sur le bouton [+] pour ajouter une ou plusieurs ligne(s) pour spécifier la Version, l'encodage (Encoding), le Format, les Flags et les valeurs NameValueCCSID et CodeCharSetId pour la portion fixe de l'en-tête MQRFH2.

MCD folder : Cochez cette case et cliquez sur le bouton [+] pour ajouter une ou plusieurs ligne(s) pour spécifier le nom et la valeur des propriétés décrivant le format du message.

JMS folder : Cochez cette case et cliquez sur le bouton [+] pour ajouter une ou plusieurs ligne(s) pour spécifier le nom du champ et sa valeur pour le transport des champs d'en-têtes JMS et des propriétés JMSX.

USR folder : Cochez cette case et cliquez sur le bouton [+] pour ajouter une ou plusieurs ligne(s) pour spécifier le nom du champ et sa valeur pour le transport des propriétés définies par l'application associée au message.

Pour plus d'informations concernant les en-têtes MQRFH2, consultez http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Faq06920_.htm.

Ce champ est disponible si vous sélectionnez ActiveMQ ou JBoss Messaging dans la liste MQ Server.

 

Set Cipher Suite

Cochez cette case pour activer la liste Cipher Suite dans laquelle vous pouvez spécifier la suite cryptographique (Cipher Suite) à utiliser avec le SSL WebSphere.

Pour plus d'informations concernant les suites cryptographiques, consultez CipherSpecs and their equivalent CipherSuites supported by IBM WebSphere MQ.

Cette case est disponible lorsque l'option WebSphere MQ est sélectionnée dans la liste MQ Server.

 

Custom Cipher Suite

Cocher cette case vous permet de personnaliser la suite cryptographique (Cipher Suite).

IBM Cipher Mappings : utiliser IBM Java Cipher Suite pour les mappings IBM MQ Cipher Spec.

Oracle Cipher Mappings : utiliser Oracle Cipher Suite pour les mappings IBM MQ Cipher Spec.

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

Dynamic settings

Cliquez sur le bouton [+] pour ajouter une ligne à la table. Dans le champ Code, saisissez une variable de contexte afin de sélectionner dynamiquement votre connexion au serveur MQ parmi celles prévues dans votre Job.

La table Dynamic settings n'est disponible que si la case Use an existing connection est cochée dans la vue Basic settings. Lorsqu'un paramètre dynamique est configuré, la liste Component List devient inaccessible dans la vue Basic settings.

Pour des exemples sur l'usage des paramètres dynamiques, consultez Scénario 3 : Lire des données dans des bases de données MySQL à l'aide de connexions dynamiques basées sur les variables de contexte et Scénario : Lire des données à partir de différentes bases de données MySQL à l'aide de paramètres de connexion chargés dynamiquement. Pour plus d'informations concernant les Dynamic settings et les variables de contexte, consultez le Guide utilisateur du Studio Talend.

Global Variables

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

NB_LINE : nombre de lignes lues par un composant d'entrée ou passées à un composant de sortie. Cette variable est une variable After et retourne un entier.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant est généralement utilisé en tant que composant de début. Il requiert un composant de sortie.

Limitation

Assurez-vous que le serveur Websphere, JBoss ou ActiveMQ correspondant est lancé.

Ce composant requiert l'installation des fichiers .jar liés. Pour plus d'informations sur l'installation de ces fichiers .jar manquants, consultez la section décrivant comment configurer le Studio Talend, dans le Guide d'installation et de migration Talend.

Scénario 1 : Communication asynchrone via un serveur MOM

Ce scénario est composé de deux Jobs. Le premier permet de poster des messages sur la file d'attente du serveur JBoss et le deuxième récupère les messages de ce serveur.

Construire et exécuter le premier Job

Dans le premier Job, un message composé de chaînes de caractères est créé à l'aide du composant tRowGenerator puis transmis au serveur JBoss à l'aide du composant tMomOutput. Un composant intermédiaire, le composant tLogRow, permet d'afficher le flux transmis.

  1. Cliquez et déposez ces trois composants dans votre premier Job et connectez-les via le clic-droit avec des liens de type Main > Row.

  2. Double-cliquez sur le composant tRowGenerator pour configurer le schéma des données qui seront générées de manière aléatoire.

  3. Créez une seule colonne appelée message. Elle correspond au message qui sera mis sur la file d'attente du MOM.

  4. Cette colonne est de type String et peut contenir une valeur nulle. Pour produire les données, utilisez une fonction prédéfinie permettant de concaténer de manière aléatoire les caractères ascii choisis pour former la chaîne de 6 caractères. Cette fonction est la suivante : getAsciiRandomString. (version Java). Cliquez sur le bouton d'aperçu pour afficher un échantillon au hasard des données générées.

  5. Paramétrez le champ Number of rows to be generated permettant de définir le nombre de lignes générée à 10.

    Cliquez sur OK pour valider.

  6. Le composant tLogRow est uniquement utilisé pour afficher un état intermédiaire des données manipulées. Dans cet exemple, aucune configuration spécifique n'est nécessaire.

  7. Sélectionnez le composant tMomOutput.

  8. Dans cet exemple, le serveur MQ server à utiliser est de type JBoss.

    Dans les champs Host et Port, renseignez les informations de connexion correspondantes.

  9. Sélectionnez le type de message dans la liste déroulante Message type, il peut être de type Queue ou Topic. Pour cet exemple, sélectionnez le type Queue dans la liste.

  10. Dans le champ To, saisissez les informations source du message strictement telles qu'elles sont attendues par le serveur. Il doit correspondre au type de message que vous avez sélectionné dans la liste déroulante Message Type, notamment : queue/A.

    Note

    Le nom du message est sensible à la casse, ainsi queue/A et Queue/A sont différents.

  11. Puis cliquez sur Sync Columns pour récupérer le schéma du composant précédent. Le schéma étant en lecture seule, il ne peut être modifié. Les données envoyées sur le serveur MQ proviennent de la première colonne rencontrée du schéma.

  12. Exécutez le Job en appuyant sur F6 et, grâce au composant tLogRow, observez dans la console le flux de données transmis.

Construire et exécuter le second Job

Puis paramétrez le deuxième Job pour récupérer les messages de la file d'attente du serveur MOM.

  1. Cliquez et déposez un composant tMomInput (dans la famille Internet de la Palette) et un composant tLogRow pour afficher les messages récupérés.

  2. Sélectionnez le tMomInput et définissez ses paramètres.

  3. Sélectionnez le serveur MQ server dans la liste. Dans cet exemple, un serveur de message JBoss est utilisé.

  4. Renseignez les informations Host et Port du serveur.

  5. Renseignez les paramètres des champs Message From et Message Type afin qu'ils correspondent à la source et au type de message attendus par le serveur de message.

  6. Le schéma dans le champ Schema est en lecture seule et est composé de deux colonnes : From et Message.

  7. Cochez la case Keep listening et paramétrez la fréquence de vérification à secondes.

    Note

    Lorsque vous utilisez l'option Keep Listening, vous devez cliquez sur le bouton Kill pour stopper le Job.

  8. Laissez les paramètres par défaut du composant tLogRow.

  9. Enregistrez le Job et exécutez-le (si vous le lancez pour la première fois ou si vous l'avez stoppé au cours d'un lancement précédent).

Les messages récupérés sur le serveur sont affichés dans la console.

Scénario 2 : Transmettre des fichiers XML via un serveur MOM

Ce scénario décrit un Job à cinq composants, comprenant deux sous-jobs envoyant des fichiers XML depuis un dossier local vers une file MOM puis récupérant les fichiers de la file MOM et affichant le contenu des fichiers dans la console.

Déposer et relier les composants

  1. De la Palette, déposez les composants suivants dans l'espace de modélisation graphique : un tFileList, un tFileInputXML, un tMomOutput, un tMomInput et un tLogRow.

  2. Reliez le tFileList au tFileInputXML à l'aide d'un lien Row > Iterate et reliez le tFileInputXML au tMomOutput à l'aide d'un lien Row > Main afin de former le premier sous-job. Ce sous-job lit chaque fichier XML dans un dossier donné et l'envoie dans une file MOM.

  3. Connectez le tMomInput au tLogRow à l'aide d'un lien Row > Main pour former le second sous-job. Ce sous-job récupère les fichiers XML de la file MOM et affiche leur contenu dans la console.

  4. Reliez le tFileInputXML au tMomInput à l'aide d'un lien Trigger > On Component Ok afin de relier les deux sous-jobs.

Configurer le premier sous-job

Configurer les composants d'entrée
  1. Double-cliquez sur le tFileList pour ouvrir sa vue Basic settings.

  2. Dans le champ Directory, saisissez le chemin d'accès au répertoire duquel lire les fichiers XML, ou parcourez votre système en cliquant sur le bouton [...].

  3. Cochez la case Use Glob Expressions as Filemask, ajoutez une nouvelle ligne dans la table Files en cliquant sur le bouton [+] et saisissez "*.xml" comme masque de fichier, dans la colonne Filemask, afin d'utiliser tous les fichiers XML du répertoire. Laissez les autres paramètres tels qu'ils sont.

  4. Double-cliquez sur le composant tFileInputXML pour ouvrir sa vue Basic settings.

  5. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir la boîte de dialogue [Schema].

  6. Cliquez sur le bouton [+] pour ajouter une colonne, nommez-la message dans cet exemple et sélectionnez Document dans la liste Type afin de gérer les fichiers au format XML. Cliquez sur OK pour fermer la boîte de dialogue.

  7. Dans le champ File name/Stream, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables globales et sélectionnez tFileList_1.CURRENT_FILEPATH afin d'effectuer une boucle sur le répertoire des fichiers de contexte.

  8. Dans le champ Loop XPath query, saisissez "/" pour définir la racine comme nœud de boucle dans la structure des fichiers d'entrée. Dans la table Mapping, dans la colonne XPath query, saisissez "." pour extraire toutes les données du nœud de contexte des fichiers source et cochez la case Get Nodes afin de construire un flux de données de type Document.

Configurer le composant tMomOutput
  1. Double-cliquez sur le composant tMomOutput pour ouvrir sa vue Basic settings.

  2. Sélectionnez WebSphere MQ dans la liste MQ server et saisissez le nom de l'hôte ou l'adresse IP du serveur MQ, ainsi que le numéro du port.

  3. Saisissez les informations d'authentification dans les champs Username (identifiant) et Password (mot de passe) puis saisissez le nom du canal de la file de transmission, dans le champ Channel.

  4. Comme vous gérez des messages de fichiers, sélectionnez Text Message dans la liste Message Body Type.

  5. Cliquez sur Sync columns afin de récupérer la structure du schéma du composant précédent.

  6. Renseignez les informations relatives au gestionnaire de file, dans le champ QueueManager et les informations concernant la file de messages, dans le champ MessageQueue. Laissez les autres paramètres tels qu'ils sont.

Configurer le second sous-job

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

  2. Configurez les paramètres simples du composant de la même manière que pour le tMomOutput, y compris les informations du serveur MQ, les informations d'authentification, le canal, le type de message, le gestionnaire de file et la file de messages.

  3. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir la boîte de dialogue [Schema].

  4. Dans la liste Type de la colonne message, sélectionnez Document afin de gérer les formats XML puis cliquez sur OK pour fermer la boîte de dialogue.

Sauvegarder et exécuter le Job

  1. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Job.

  2. Appuyez sur F6 ou cliquez sur Run dans l'onglet Run pour exécuter le Job.

    Les fichiers XML du dossier spécifié sont écrits dans la file de messages puis sont récupérés de la file. Le contenu des fichiers est affiché dans la console.