tJMSOutput - 6.1

Talend Components Reference Guide

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
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.

If you have subscribed to one of the Talend solutions with Big Data, this component is available in the following types of Jobs:

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 https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products or the section describing how to configure the Studio in the Talend Installation 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.

tJMSOutput properties in Spark Streaming Jobs

Warning

The streaming version of this component is available in the Palette of the studio on the condition that you have subscribed to Talend Real-time Big Data Platform or Talend Data Fabric.

Component Family

Messaging / MOM and JMS

 

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 when the processing mode is Raw Message or messageContent when this mode is Message Content.

Since the message column requires valid JMS messages as input, you need to use a tJava component to write these JMS messages, while when the messageContent column is used, you can use a Write component to provide data.

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.

 

Use SSL/TLS

Select this check box to enable the SSL or TLS encrypted connection.

Then you need to use the tSetKeystore component in the same Job to specify the authentication information.

For further information about tSetKeystore, see tSetKeystore.

 

Properties

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

 

Connection pool

In this area, you configure the connection pool used to control the number of connections that stay open simultaneously. Generally speaking, the default values given to the following connection pool parameters are good enough for most use cases.

  • Max total number of connections: enter the maximum number of connections (idle or active) that are allowed to stay open simultaneously.

    The default number is 8. If you enter -1, you allow unlimited number of open connections at the same time.

  • Max waiting time (ms): enter the maximum amount of time at the end of which the response to a demand for using a connection should be returned by the connection pool. By default, it is -1, that is to say, infinite.

  • Min number of idle connections: enter the minimum number of idle connections (connections not used) allowed in the connection pool.

  • Max number of idle connections: enter the maximum number of idle connections (connections not used) allowed in the connection pool.

 

Evict connections

Select this check box to define criteria to destroy connections in the connection pool. The following fields are displayed once you have selected it.

  • Time between two eviction runs: enter the time interval (in milliseconds) at the end of which the component checks the status of the connections and destroys the idle ones.

  • Min idle time for a connection to be eligible to eviction: enter the time interval (in milliseconds) at the end of which the idle connections are destroyed.

  • Soft min idle time for a connection to be eligible to eviction: this parameter works the same way as Min idle time for a connection to be eligible to eviction but it keeps the minimum number of idle connections, the number you define in the Min number of idle connections field.

Usage in Spark Streaming Jobs

In a Talend Spark Streaming Job, it is used as an end component and requires an input link. The other components used along with it must be Spark Streaming components, too. They generate native Spark code that can be executed directly in a Spark cluster.

This component, along with the Spark Streaming component Palette it belongs to, appears only when you are creating a Spark Streaming Job.

Note that in this documentation, unless otherwise explicitly stated, a scenario presents only Standard Jobs, that is to say traditional Talend data integration Jobs.

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.

Spark Connection

You need to use the Spark Configuration tab in the Run view to define the connection to a given Spark cluster for the whole Job. In addition, since the Job expects its dependent jar files for execution, one and only one file system related component from the Storage family is required in the same Job so that Spark can use this component to connect to the file system to which the jar files dependent on the Job are transferred:

This connection is effective on a per-Job basis.

Related scenarios

No scenario is available for the Spark Streaming version of this component yet.