Skip to main content
Pentaho Documentation

JMS Producer

The Java Messaging Service (JMS) Producer step publishes messages in near-real-time to the Apache ActiveMQ JMS server or IBM MQ middleware. You may use the JMS Producer step to define a transformation which posts to a JMS queue for every update of a warehouse. In turn, this queue could then launch another job that flushes an application cache.

Before You Begin

Before using the JMS Producer step, be aware of the following conditions:

  • You must be familiar with JMS messaging to use this step. Additionally,you must have a message broker, such as Apache ActiveMQ or IBM MQ, available before you configure this step.
  • This step supports JMS 2.0 and requires Apache ActiveMQ Artemis.
  • If you need to use JMS 1.1 with ActiveMQ or Artemis, use the previous versions of the JMS Consumer and JMS Producer steps, also available in Pentaho version 8.1 and earlier. 
  • Place IBM MQ client JARs for the IBM MQ middleware in the following directories:  
  • On the PDI client: data-integration/system/karaf/deploy
  • On the Pentaho Server: server/pentaho-server/pentaho-solutions/system/karaf/deploy

You need to locate the Websphere MQ classes for JMS Java libraries from your IBM Websphere MQ installation. You can also find these libraries in your IBM Websphere MQ Client SupportPac. The Websphere MQ Java libraries version that the PDI plugin steps were built against is 9.0.0.3. The libraries that you must have available for distribution into the PDI JMS plugin are:

  • ocom.ibm.mq.osgi.allclientprereqs_9.0.0.3.jar
  • ocom.ibm.mq.osgi.allclient_9.0.0.3.jar
  • ocom.ibm.mq.jmqi.jar
  • odhbcore.jar

Because IBM licensing prevents us from distributing these libraries directly, you will need to add them to your PDI directories.

  • Place JMS Library jars for the ConnectionFactory other supporting classes in the following directories: 
  • On the PDI client: data-integration/system/karaf/deploy
  • On the Pentaho Server: server/pentaho-server/pentaho-solutions/system/karaf/deploy

General

Enter the following information in the following field:

  • Step name: Specifies the unique name of the transformation on the canvas. The Step name is set to JMS Producer by default.

JMS Connection Information

PDITransStep_JMSProducer_SetupTab.png

Setup Tab

In this tab, define the connections used for receiving messages, topics, and queues.

Option Description

IBM MQ

Activate this connection type if you are using IBM MQ as your message broker.

Active MQ

Activate this connection type if you are using Apache ActiveMQ Artemis and JMS 2.0 as your message broker.

JMS URL Enter the broker URL for the selected connection type.
Username Enter either the Apache ActiveMQ Artemis or IBM MQ username.
Password Enter either the Apache ActiveMQ Artemis or IBM MQ password.
Destination type

Select Topic or Queue from the list to specify the delivery model you want to use. 

  • Topic uses a publish/subscribe delivery model such that a one message can be delivered to multiple consumers. Messages are delivered to the topic destination and ultimately to all active consumers who are subscribers of the topic. 
  • Queue uses a point-to-point delivery model. In this model, a message is delivered from a single producer to a single consumer. The messages are delivered to the destination, which is a queue, and then delivered to one of the consumers registered for the queue.
Destination name Specify the name of the topic or queue.
Receive timeout

Specify the time to wait for incoming messages in milliseconds.

A timeout setting of zero ('0') never expires.

Options Tab

Use this tab to configure JMS message options.

PDITransStep_JMSProducer_OptionsTab.png

Fill in the following JMS options with valid values per ActiveMQ or IBM MQ.

Option Valid Value

Disable Message ID

true or false

Disable Message Timestamp

true or false

Delivery Mode Integer (example '1') 
Priority Integer between 0 and 9 (example '2')
Time to Live

Integer (example '4')

This value must be greater than the value of the Delivery Delay.

Delivery Delay

Integer (example '2')

JMS Correlation ID Any ID (example 'Vantara')
JMS Type

Active MQ or IBM MQ

Properties Tab

Use this tab to set additional properties for your connection type.

PDITransStep_JMSProducer_PropertiesTab.png

Metadata Injection Support

All fields of this step support metadata injection. You can use this step with ETL Metadata Injection to pass metadata to your transformation at runtime.

See Also

JMS Consumer