August 16, 2023

tJMSOutput – Docs for ESB 6.x

tJMSOutput

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

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

Depending on the Talend solution you
are using, this component can be used in one, some or all of the following Job
frameworks:

tJMSOutput Standard properties

These properties are used to configure tJMSOutput running in the Standard Job framework.

The Standard
tJMSOutput component belongs to the Internet family.

The component in this framework is generally available.

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

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

Usage rule

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

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. You can find more details about how to install external modules in Talend Help Center (https://help.talend.com).

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.

    use_case_tjmsoutput_1.png

Configuring the components

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

    use_case_tjmsoutput_2.png

    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:
  2. Click the Edit schema button to open the
    schema editor.

    use_case_tjmsoutput_3.png

  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.

    use_case_tjmsoutput_7.png

    Click Yes to propagate the schema to the subsequent
    component.
  5. Double-click JMSOutput to open its
    Basic settings view.

    use_case_tjmsoutput_4.png

  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.

    use_case_tjmsoutput_5.png

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.

    use_case_tjmsoutput_6.png

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

tJMSOutput properties for Apache Spark Streaming

These properties are used to configure tJMSOutput running in the Spark Streaming Job framework.

The Spark Streaming
tJMSOutput component belongs to the Messaging family.

The streaming version of this component is available in the Palette of the Studio only if you have subscribed to Talend Real-time Big Data Platform or Talend Data
Fabric.

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 encryption 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, for each Spark executor, the connection pool used to control
the number of connections that stay open simultaneously. 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) maintained in the connection pool.

  • Max number of idle connections: enter the maximum number
    of idle connections (connections not used) maintained 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

Usage rule

This component is used as an end component and requires an input link.

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.

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, you must specify the directory in the file system to which these
jar files are transferred so that Spark can access these files:

  • Yarn mode: when using Google
    Dataproc, specify a bucket in the Google Storage staging
    bucket
    field in the Spark
    configuration
    tab; when using other distributions, use a
    tHDFSConfiguration
    component to specify the directory.

  • Standalone mode: you need to choose
    the configuration component depending on the file system you are using, such
    as tHDFSConfiguration
    or tS3Configuration.

This connection is effective on a per-Job basis.

Related scenarios

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


Document get from Talend https://help.talend.com
Thank you for watching.
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x