Skip to end of banner
Go to start of banner

Configuring JMS Accounts

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 60 Next »

In this article

Overview

This account is used by the Snaps in the JMS Snap Pack.

You can create an account from Designer or Manager. In Designer, when working on pipelines, every Snap that needs an account prompts you to create a new account or use an existing account. The accounts can be created in or used from:

  • Your private project folder: This folder contains the pipelines that will use the account.
  • Your Project Space’s shared folder: This folder is accessible to all the users that belong to the Project Space.
  • The global shared folder: This folder is accessible to all the users within an organization in the SnapLogic instance.

Supported JMS Versions

This Snap Pack is tested against ActiveMQ, ApolloMQ, HornetQ,and IBM MQ.

Account Configuration

In Manager, you can navigate to the required folder and create an account in it (see Accounts). To create an account for JMS: 

  1. Click Create, then select JMS and the appropriate account type.

    1. JMS Account (For JMS providers, such as ApolloMQ, HornetQ, and so on. For detailed information on configuring each of these account types, see the guidance provided below.)
    2. SQS Account (Specifically for Amazon SQS Service only)
  2. Supply an account label.

  3. Supply the necessary information.

  4. (Optional) Supply additional information on this account in the Notes field of the Info tab.
  5. Click Apply.

Account Types

SQS Account

 Account Settings

Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications.

 - Source: Amazon Simple Queue Service

  • For SQS use cases, we recommend you to use the SQS Snap Pack, which is feature-rich and robust.
  • For JMS Snaps using Amazon SQS accounts, SQS is not JMS and only supports queues in synchronous mode with auto-acknowledgment. SQS accounts do not support asynchronous mode, client acknowledgment, or topics. 

If you're using a JMS Snap Pack, CLIENT-ACK, with a SQS account instead of a JMS account, then you must specify a STANDARD SQS queue. It will fail if you specify a FIFO SQS queue.

Account Settings

Label


Required. User provided label for the account instance.

AWS access key ID


Required. AWS access key ID part of AWS authentication. 

Default value: [None]

AWS secret key


Required. AWS secret key part of AWS authentication. 

Default value: [None]

AWS end point


Required. AWS end point URL. Refer to http://docs.aws.amazon.com/general/latest/gr/rande.html#sqs_region

Default value: [None]


AWS Region


AWS region the application is running in. Allowed values are:

  • us-gov-west-1
  • us-east-1
  • us-west-1
  • us-west-2
  • eu-west-1
  • eu-central-1
  • ap-southeast-1
  • ap-southeast-2
  • ap-northeast-1
  • sa-east-1
  • cn-north-1


Account Encryption

Standard Encryption

If you are using Standard Encryption, the High sensitivity settings under Enhanced Encryption are followed.


Enhanced Encryption

If you have the Enhanced Account Encryption feature, the following describes which fields are encrypted for each sensitivity level selected for this account.

Account:

  • High:
  • Medium + High
  • Low + Medium + High

JMS Account

 Account Settings


Label


Required. User provided label for the account instance

Username


A username necessary to create the connection to the JMS provider.

Default value: [None]


Password


The password associated with the JMS username.

Default value: [None]


Connection Factory


Required. A JNDI name for the JMS connection factory.

Default value: [None]


JNDI Properties


Required. Additional JNDI properties for connecting to the JMS server.


Property name

The name of the JNDI property.

Example: java.naming.factory.initial, java.naming.provider.url

Default value: [None]


Property value

The value of the JNDI property

Default value: [None]

HTTPS protocol is not supported for this field.

Jar files


Required. Supply the necessary JAR files of the related to the JMS provider to produce and consume messages.

Popular vendors are:

Default value: [None]


Account Encryption

Standard Encryption

If you are using Standard Encryption, the High sensitivity settings under Enhanced Encryption are followed.


Enhanced Encryption

If you have the Enhanced Account Encryption feature, the following describes which fields are encrypted for each sensitivity level selected for this account.

Account:

  • High: Password
  • Medium + High: Username, password
  • Low + Medium + High: Username, password, Connection Factory, JNDI Property values

We have provided the settings required for working with the following popular vendors:

 How to configure JMS for ActiveMQ without SSL

Configuring JMS for ActiveMQ

Property Name

Property Value

java.naming.factory.initial

org.apache.activemq.jndi.ActiveMQInitialContextFactory 

java.naming.provider.url

tcp://localhost:61616

topic.jms/topic/dataTopic

TOPIC.DATATOPIC

topic.jms/topic/controlTopic

TOPIC.CONTROLTOPIC

queue.jms/queue/dataQueue

QUEUE.DATAQUEUE

queue.jms/queue/controlQueue 

QUEUE.CONTROLQUEUE

connectionFactoryNames

connFact


 jms/topic/dataTopic is the JNDI name for the data topic while TOPIC.DATATOPIC is the physical name. They must be taken from Tomcat configuration file.
 How to Configure JMS for Connecting to ActiveMQ via SSL

Configuring JMS for Connecting to Active MQ via SSL

  1. Add Active MQ server's certificate to plex's trust store.

  2. Attach the .bindings file that is created by the Active MQ SME and is provided with the server's certificate.
    The Connection Factory property fetches the value from the .bindings file.

    Each client has unique .bindings, and the Active MQ SME of the customer creates the .bindings file. 

    An Active MQ SME provides the following JNDI properties:

    • Multiple queueManager hostnames separated by commas, which are resolvable by the Groundplex.
    • The value for JNDI URL property, java.naming.provider.url, which is the path of the folder on the Groundplex where the .bindings file is stored.
      The file must be called .bindings, and the Groundplex user (snap user) must have read permission to access it.


  3. Provide all the necessary JAR files belonging to the Active MQ client, or it might fail to validate.
    Each version of the Active MQ client uses different JRE levels. If the version of Active MQ is 5.15.10, use the 5.15.10 JRE files.

    Include the following JAR files while configuring the account: 

    • activemq-all-5.15.10.jar
    • commons-logging-1.2.jar
    • commons-codec-1.9.jar
    • httpclient-4.5.2.jar
    • httpcore-4.4.4.jar
    • xtream-1.4.11.1.jar
  4. Upload these libraries(JAR files) to the Shared project for the JMS account.

  5. Configure the following JVM options, and then start the JCC.

    Each client has unique .xml, and the Active MQ SME of the customer creates the .xml file. 

    An Active MQ SME provides the following JNDI properties:

    • jcc.jvm_options = -Djavax props-Djavax.net.ssl.trustStore=/path/to/broker.ts -Djavax.net.ssl.trustStorePassword=changeit
    • ACTIVEMQ_SSL_OPTS = -Djavax.net.ssl.keyStore=/path/to/broker.ks -Djavax.net.ssl.keyStorePassword=password
Property NameProperty Value
java.naming.factory.initialorg.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.urlhttps://<machine_name>:8443
 How to configure JMS for ApolloMQ

Configuring JMS for ApolloMQ

Property Name

Property Value

java.naming.factory.initial

org.apache.activemq.jndi.ActiveMQInitialContextFactory 

java.naming.provider.url

tcp://localhost:61613

topic.jms/topic/dataTopic

topic.dataTopic

topic.jms/topic/controlTopic

topic.controlTopic

queue.jms/queue/dataQueue

queue.dataQueue

queue.jms/queue/controlQueue 

queue.controlQueue

connectionFactoryNames

connFact

 
Note: ApolloMQ is REST based. It can be configured using Web Console. While creating a topic/queue, we must provide just name. This name is used both as the property name and property value.

 How to set up JMS for JBoss HornetQ without SSL

Configuring JMS for JBoss HornetQ

Before you start configuring your HornetQ account in SnapLogic, you must first unzip the HornetQ Setup ZIP file and install HornetQ on the server that you want to use with SnapLogic. Details required in the Account Settings popup for HornetQ will require information that will become available to you only after you install HornetQ.


Configuring the HornetQ Account

Update the Account popup with the following settings:

Label

Required. Enter a label for the new account.

Default value: None.

Username

Enter the username associated with your HornetQ account.

Default value: None.

Password

Enter the password associated with the username entered in the Username field.

Default value: None.

Connection Factory

Required. This is the Java Naming and Directory Interface (JNDI) name for the JMS connection factory. you can find this information in the configuration file associated with the HornetQ installation.

Default value: None.

JNDI Properties

Required. Enable you to specify details, such as the JNDI server name, which will enable SnapLogic to connect to HornetQ. You need to configure these are pairs of Property Name and Property Value.

These properties and values must be configured as shown below:

Property Name

Required. This is the name of the JNDI property required for JNDI to work. These names can be picked up from the JNDI configuration file.

Default value: None.

Property Value

Required. This is the location of the package that contains information related to this property.

Default value: None.

Jar files

Required. These are the JAR files that must be present; else HornetQ will not work.

Default value: None.

The typical list of JAR files associated with HornetQ are as follows. These files are available once HornetQ is installed on your server. You need to navigate to the directory where you installed HornetQ and upload these files to SLDB:

 How to set up JMS for JBoss HornetQ via SSL

Configuring JMS for Connecting to HornetQ via SSL

  1. Import HornetQ server's certificate to plex's trust store by using the following command:

    -import -file ~/client.cer -keystore broker.ts1 -storepass

  2. Attach the hornetq-configuration.xml file that is created by the HornetQ SME and is provided with the server's certificate.

  3. Edit the hornetq-configuration.xml file that you imported from the server.

    1. Edit connectors.

    2. Edit acceptors.

  4. In the JMS.xml file, add one Connection Factory.

    The Connection Factory property fetches the value from the JMS.xml file.

    Each client has unique .xml, and the HornetQ SME of the customer creates the .xml file. 

    A HornetQ SME provides the following JNDI properties:

    • jcc.jvm_options = -Djavax props
    • Djavax.net.ssl.trustStore=/usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit
  5. Optionally, create a simple pipeline with a File Reader Snap to verify that you can access the .xml file.

  6. Provide all the necessary JAR files belonging to the HornetQ client, or it might fail to validate.

    Each version of the HornetQ client uses different JRE levels. If the version of HornetQ is 1.8, use the 1.8 JRE files.

    The typical list of JAR files associated with HornetQ are as follows. These files are available once you install HornetQ on your server. You need to navigate to the directory where you installed HornetQ and upload these files to SLDB:

  7. Upload these libraries(JAR files) to the Shared project for the JMS account.
 How to set up a JMS account for IBM WebSphere MQ without SSL

Configuring JMS for IBM WebSphere MQ

  • Enter the Username and Password, if required. 

    If you do not have the JMS server installed locally, you must provide the Username and Password values associated with the remote JMS server to which you want to connect.

  • The value for the Connection Factory comes from the .bindings file that the WebSphere MQ SME creates
  • The .bindings is unique per client and the WebSphere MQ SME of the customer creates the .bindings file 
    • Provide the following JNDI properties:
      • Provide the Username and Password (if set) values for the respective JNDI properties as java.naming.security.principal and java.naming.security.credential
      • Specify multiple queueManager hosts by adding a comma separated hostnames and ensure that they are resolvable by the Groundplex
      • The value for JNDI URL property,  java.naming.provider.url  is the path of the folder on the Groundplex where the .bindings file is stored
      • The file must be called .bindings and the Groundplex user (snapuser) must have read permission to access it. Do create a simple pipeline with a File Reader Snap to verify that you can access the .bindings file
    • Provide all the jar files as displayed in the screenshot or it might fail to validate.
    • Ensure that you are using the JAR files belonging to the WebSphere Client. Each version of the WebSphere MQ client uses different JRE levels. If the version of WebSphere MQ is 1.8, use the 1.8 JRE files.
    • Upload these libraries(Jar files) to the Shared project for the JMS Account to work as expected.


Property Name

Property Value

java.naming.factory.initial

com.sun.jndi.fscontext.RefFSContextFactory

java.naming.provider.url

file:///home/ubuntu/JNDI-Directory

java.naming.security.authentication

none

hostname

127.0.0.1

port

1414

queueManager

qManager

channel

mqCientConnChannel

transportType

1

clientReconnectTimeout2
clientReconnectOptions0

Jar Files

Include the following JAR files while configuring the account: 

  • com.ibm.mq.defaultconfig.jar
  • com.ibm.mq.postcard.jar
  • providerutil.jar
  • fscontext.jar
  • com.ibm.mq.traceControl.jar
  • com.ibm.mqjms.jar
  • com.ibm.mq.jmqi.jar
  • com.ibm.mq.pcf.jar
  • com.ibm.mq.headers.jar
  • bcpkix-jdk15on.jar
  • bcprov-jdk15on.jar
  • com.ibm.mq.tools.ras.jar
  • com.ibm.mq.commonservices.jar
  • com.ibm.mq.jar
  • com.ibm.mq.allclient.jar
 How to set up a JMS account for IBM WebSphere MQ via SSL

Configuring JMS for Connecting to IBM WebSphere MQ via SSL

  1. Add IBM MQ server's certificate in plex's trust store.

  2. Attach the .bindings file that iscreated by the WebSphere MQ SME and is provided with theserver's certificate.
    The Connection Factory property fetches the value from the .bindings file.

    Each client has unique .bindings, and the WebSphere MQ SME of the customer creates the .bindings file. 

    A WebSphere MQ SME provides the following JNDI properties:

    • Multiple queueManager hostnames separated by commas, which are resolvable by the Groundplex.
    • The value for JNDI URL property, java.naming.provider.url, which is the path of the folder on the Groundplex where the .bindings file is stored.
      The file must be called .bindings, and the Groundplex user (snap user) must have read permission to access it.
  3. Optionally, create a simple pipeline with a File Reader Snap to verify that you can access the .bindings file.

  4. Provide all the necessary JAR files belonging to the WebSphere MQ client, or it might fail to validate.
    Each version of the WebSphere MQ client uses different JRE levels. If the version of WebSphere MQ is 1.8, use the 1.8 JRE files.

    The typical list of JAR files associated with WebSphere MQ are as follows. These files are available once you install WebSphere MQ on your server. Navigate to IBMMQ/MQServer/lap/jre/ibm-java-x86_64-80/jre/lib, where you installed WebSphere MQ, and upload these files to SLDB:


  5. Upload these libraries(JAR files) to the Shared project for the JMS account.

  6. Configure the following JVM options, and then start the JCC.

    • com.ibm.mq.cfg.useIBMCipherMappings: false

    • javax.net.ssl.trustStore: <Path of the truststore containing the server certificate>

    • javax.net.ssl.trustStorePassword - <truststore password>


Property Name

Property Value

java.naming.factory.initial

com.sun.jndi.fscontext.RefFSContextFactory

java.naming.provider.url

file:///home/ubuntu/JNDI-Directory

java.naming.security.authentication

none

hostname

127.0.0.1

port

1414

queueManager

qManager

channel

mqCientConnChannel

transportType

1

clientReconnectTimeout2
clientReconnectOptions0

Snap Pack History

 Click to view/expand
ReleaseSnap Pack VersionDateTypeUpdates
February 2024main25112 StableUpdated and certified against the current SnapLogic Platform release.
November 2023main23721 StableUpdated and certified against the current SnapLogic Platform release.
August 2023main22460 StableUpdated and certified against the current SnapLogic Platform release.

May 2023

main21015 

Stable

Upgraded with the latest SnapLogic Platform release.

February 2023432patches20479 Latest

Fixed an issue where the JMS Producer Snap was previously only writing headers to the WebLogic queue. Now the Snap writes the entire document.

February 2023main19844 StableUpgraded with the latest SnapLogic Platform release.
November 2022main18944 StableUpgraded with the latest SnapLogic Platform release.
August 2022main17386 StableUpgraded with the latest SnapLogic Platform release.
4.29main15993 StableUpgraded with the latest SnapLogic Platform release.
4.28main14627 StableUpgraded with the latest SnapLogic Platform release.

4.27

main12833

 

Stable

Upgraded with the latest SnapLogic Platform release.
4.26main11181 StableUpgraded with the latest SnapLogic Platform release.
4.25main9554
 
Stable

Upgraded with the latest SnapLogic Platform release.

4.24 Patch4.24patches9098 Latest

Enhances the JMS account in the JMS Snap Pack by updating the JNDI properties (java.naming.security.principal, java.naming.security.credentials) with username and password, to support the requirements of certain JMS servers.

4.24 Patch424patches9104 Latest

Fixes an issue in the JMS Consumer Snap, where different JMS SQS accounts interfere with each other while running on the same jcc node by using the AWSStaticCredentialProvider instead of the SystemPropertiesCredentialsProvider.

4.24main8556
StableUpgraded with the latest SnapLogic Platform release.
4.23main7430
 
StableUpgraded with the latest SnapLogic Platform release.
4.22 Patch422patches6992 Latest

Fixes the JMS Snap Pack by replacing JMS class loader for Oracle AQ (Advance Queuing).

4.22main6403
 
StableUpgraded with the latest SnapLogic Platform release.
4.21snapsmrc542

 

StableUpgraded with the latest SnapLogic Platform release.
4.20 Patch  jms8824 Latest

Fixes an issue in the JMS Consumer Snap due to which the Snap does not release the memory even after Pipeline termination, leading to huge memory spikes.

4.20 Patch jms8810 Latest

Fixes the connection leak issue in the JMS Producer Snap.

4.20 Patch jms8765 Latest

Fixes an issue with the JMS Consumer Snap that fails to successfully create durable subscribers when run in asynchronous mode.

4.20snapsmrc535
 
StableUpgraded with the latest SnapLogic Platform release.
4.19 Patch jms8420 Latest
  • Adds the following properties to the JMS Consumer and JMS Producer Snaps to enable retry and reconnect features:
    • Number of retries: Defines the number of times the Snap must re-attempt an operation before throwing a connection/network error.
    • Retry interval (milliseconds): Defines the time in milliseconds the Snap must wait between subsequent retries upon a connection/network error.
  • Enables the JMS Producer Snap to clean up stale connections.
  • Fixes the JMS Acknowledge Snap where the Snap fails unexpectedly without providing a reason.
4.19snaprsmrc528
 
StableUpgraded with the latest SnapLogic Platform release.
4.18 Patch jms7865 Latest

Fixed an issue with the JMS Consumer Snap that reinserts failed messages in the JMS queue without checking for duplicate messages.

4.18snapsmrc523
 
StableUpgraded with the latest SnapLogic Platform release.
4.17ALL7402
 
Latest

Pushed automatic rebuild of the latest version of each Snap Pack to SnapLogic UAT and Elastic servers.

4.17snapsmrc515
 
Latest

Added the Snap Execution field to all Standard-mode Snaps. In some Snaps, this field replaces the existing Execute during preview check box.

4.16snapsmrc508
 
StableUpgraded with the latest SnapLogic Platform release.
4.15snapsmrc500
 
Stable

Added HornetQ support for the JMS Producer and JMS Consumer Snaps.

4.14snapsmrc490
 
StableUpgraded with the latest SnapLogic Platform release.
4.13

snapsmrc486

 
StableUpgraded with the latest SnapLogic Platform release.
4.12

snapsmrc480

 
StableUpgraded with the latest SnapLogic Platform release.
4.11snapsmrc465
 
StableUpgraded with the latest SnapLogic Platform release.
4.10

snapsmrc414

 
StableUpgraded with the latest SnapLogic Platform release.
4.9 Patch jms3305 Latest

Elegant error & resolution messaging for bad ConnectionFactory and bad connectionFactoryNames JNDI property

4.9snapsmrc405
 
StableUpgraded with the latest SnapLogic Platform release.
4.8 Patch jms2702  Latest

Addressed an issue with the JMS Acknowledge Snap failing to exit in Ultra mode.

4.8 Patchjms2883 Latest

Addressed multiple issues regarding messages being consumed or acknowledged in JMS Consumer and Acknowledge Snaps.

4.8

snapsmrc398

 
StableUpgraded with the latest SnapLogic Platform release.
4.7

snapsmrc382

 
StableUpgraded with the latest SnapLogic Platform release.
4.6snapsmrc362
 
StableUpgraded with the latest SnapLogic Platform release.
4.5.1

snapsmrc344

 
StableUpgraded with the latest SnapLogic Platform release.
4.5

snapsmrc344

Stable
  • Resolved an issue in JMS Consumer Snap that occurred when the Snap is set with the SQS account on a client_acknowledge mode.
  • Resolved an issue in JMS Consumer Snap that occurred when the Snap was used in the middle of a pipeline.
4.4
 Stable
  • JMS Producer: The file header is now passed through to the output view.
  • JMS Acknowledge: JMS MessageID is now optional for the input.
  • JMS Consumer: Expressions are now supported for Client ID and Subscription Name.

  • No labels