tJMSOutput - 6.3

Talend Open Studio for Big Data Components Reference Guide

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Big Data
task
Data Governance
Data Quality and Preparation
Design and Development
EnrichPlatform
Talend Studio

Function

tJMSOutput creates an interface between a Java application and a Message-Oriented middle ware system.

Purpose

Using a JMS server, tJMSOutput makes it possible to have loosely coupled, reliable, and asynchronous communication between different components in a distributed application.

tJMSOutput properties

Component Family

Internet

 

Basic settings

Module List

Select the library to be used from the list.

 

Context Provider

Type in the context URL, for example com.tibco.tibjms.naming.TibjmsInitialContextFactory. However, be careful, the syntax can vary according to the JMS server used.

 

Server URL

Type in the server URL, respecting the syntax, for example tibjmsnaming://localhost:7222.

 

Connection Factory JDNI Name

Type in the JDNI name.

 

Use Specified User Identity

If you have to log in, select the check box and type in your login and password.

To enter the password, click the [...] button next to the password field, and then in the pop-up dialog box enter the password between double quotes and click OK to save the settings.

 

Message Type

Select the message type, either: Topic or Queue.

 

To

Type in the message target, as expected by the server.

 

Processing Mode

Select the processing mode for the messages.

Raw Message or Message Content

 

Schema and Edit Schema

A schema is a row description, it defines the number of fields that will be processed and passed on to the next component.

The tJMSOutput schema is read-only. It is made of one column: Message

Advanced settings

Delivery Mode

Select a delivery mode from this list to ensure the quality of data delivery:

Not Persistent: This mode allows data loss during the data exchange.

Persistent: This mode ensures the integrity of message delivery.

 

Properties

Click the plus button underneath the table to add lines that contains username and password required for user authentication.

 

tStatCatcher Statistics

Select this check box to gather the Job processing metadata at a Job level as well as at each component level.

Global Variables

ERROR_MESSAGE: the error message generated by the component when an error occurs. This is an After variable and it returns a string. This variable functions only if the Die on error check box is cleared, if the component has this check box.

NB_LINE: the number of rows read by an input component or transferred to an output component. This is an After variable and it returns an integer.

A Flow variable functions during the execution of a component while an After variable functions after the execution of the component.

To fill up a field or expression with a variable, press Ctrl + Space to access the variable list and choose the variable to use from it.

For further information about variables, see Talend Studio User Guide.

Usage

This component is generally used as an output component. It must be linked to an input component.

Log4j

If you are using a subscription-based version of the Studio, the activity of this component can be logged using the log4j feature. For more information on this feature, see Talend Studio User Guide.

For more information on the log4j logging levels, see the Apache documentation at http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html.

Limitation

Make sure the JMS server is launched.

Due to license incompatibility, one or more JARs required to use this component are not provided. You can install the missing JARs for this particular component by clicking the Install button on the Component tab view. You can also find out and add all missing JARs easily on the Modules tab in the Integration perspective of your studio. For details, see the article Installing External Modules on Talend Help Center (https://help.talend.com) how to configure the Studio in the Talend Installation and Upgrade Guide.

Scenario: Enqueuing/dequeuing a message on the ActiveMQ server

In this scenario, JMSOutput sends a message to a queue on the ActiveMQ server, which is then retrieved by JMSInput. This message is finally displayed on the console via tLogRow.

Linking the components

  1. Drop tFixedFlowInput, JMSOutput, JMSInput, and tLogRow onto the workspace.

  2. Link tFixedFlowInput to JMSOutput using a Row > Main connection.

  3. Link tFixedFlowInput to JMSInput using the OnSubjobOk trigger.

  4. Link JMSInput to tLogRow using a Row > Main connection.

Configuring the components

  1. Double-click tFixedFlowInput to open its Basic settings view.

    Select Use Inline Content (delimited file) in the Mode area.

    In the Content field, enter the content of the message to be sent to the ActiveMQ server:

    message transferred
  2. Click the Edit schema button to open the schema editor.

  3. Click the [+] button to add one column, namely messageContent, of the string type.

    Click OK to validate the setup and close the editor.

  4. Now appears the pop-up box that asks for schema propogation.

    Click Yes to propagate the schema to the subsequent component.

  5. Double-click JMSOutput to open its Basic settings view.

  6. In the Module List list, select the library to be used, namely the activemq jar in this case.

  7. In the Context Provider field, enter the context URI, "org.apache.activemq.jndi.ActiveMQInitialContextFactory" in this case.

  8. In the Server URL field, enter the ActiveMQ Server URI.

  9. In the Connection Factory JDNI Name field, enter the JDNI name, "QueueConnectionFactory" in this case.

  10. Select the Use Specified User Identity check box to show the User Name and Password fields, where you can enter the authentication data.

  11. In the Message type list, select Queue.

  12. In the Processing Mode list, select Message Content.

  13. Perform the same setup in the Basic settings view of JMSInput.

Executing the Job

  1. Press Ctrl + S to save the Job.

  2. Press F6 to run the Job. Note that the ActiveMQ server has started at tcp://192.168.30.46:61616.

    As shown above, the message is correctly transferred and displayed.