MC2 JMS Configuration for IBM WebSphere MQ

IBM® MQ, formerly WebSphere MQ, is messaging middleware that simplifies and accelerates the integration of diverse applications and data across multiple platforms.

It uses message queues to exchange information and offers a single messaging solution for cloud, on premise, mobile and IoT environments.

Configure WebSphereMQ

You must install vendor libraries. For details, see External Vendor Libraries below.

To configure WebSphereMQ connection you must provide the following parameters:

  • region                - concrete Oracle SID of your region name

  • transport type   - usually it equals 1

  • port                    - WebSphere port for client connections

  • channel              - WebSphere channel name

  • queue manager - WebSphere Queue Manager name

  • host name          - address of WebSphereMQ

These are minimal required configuration parameters.

connections.json
{ "Region": "Oracle SID of the region", /*Oracle SID of region name to which this config belongs*/ "Connections": [ { "ConnectionName": "default.wmq.connection", /* connection name. Do NOT use underscore character ("_") in name */ "ComponentName": "wmq", /* name of component */ "Parameters": { "transportType": 1, /* sets the transport type */ "port": 1414, /* sets the port for a client connection */ "channel": "S_eglwwvm24c", /* sets the name of the channel - applies to client transport mode only */ "queueManager": "QM_eglwwvm24c", /* sets the name of the queue manager */ "HostName": "1.2.3.4" /* Sets the name of the host (or IP) */ , "ClientID": "enterprise" /* optional: sets the client ID */ , "CCSID": 1 /* optional: sets the character set to be used when connecting to the queue manager */ , "clientReconnectTimeout": 10 /* optional: set the amount of time, in seconds, that a client connection will attempt to reconnect */ } } ] }

MC2 provides the following predefined JMS componets, which can be used in ComponentName:

  • wmq - the component to be used for producers/Outbound streams. Maintains a pool of connections

  • wmq-no-pool - the component to be used for consumers, i..e Inbound MC2JMS Streams. No connection pool maintained

  • wmqssl - the component to be used for SSL connections to WebSphere MQ. Uses a pool of connections. Should be used for publishing messages to WebSphere MQ

  • wmqssl-no-pool - the component to be user for consumers, i.e. Inbound MC2JMS Streams.

 

WebSphere MQ Configuration With SSL/TLS Connection

To configure an ssl connection, the wmqssl/wmqssl-no-pool component has to be used and the SSLCipherSuite, SSLTruststoreFile and SSLKeystoreFile parameters should be defined. For example:

Websphere MQ SSL Example
{ "Region": "Oracle SID of the region", /*Oracle SID of region name to which this config belongs*/ "Connections": [ { "ConnectionName": "default.wmq.connection", /* connection name. Do NOT use underscore character ("_") in name */ "ComponentName": "wmqssl", /* name of component */ "Parameters": { "transportType": 1, /* sets the transport type */ "port": 1414, /* sets the port for a client connection */ "channel": "S_eglwwvm24c", /* sets the name of the channel - applies to client transport mode only */ "queueManager": "QM_eglwwvm24c", /* sets the name of the queue manager */ "HostName": "1.2.3.4" /* Sets the name of the host (or IP) */ , "ClientID": "enterprise" /* optional: sets the client ID */ , "CCSID": 1 /* optional: sets the character set to be used when connecting to the queue manager */ , "clientReconnectTimeout": 10, /* optional: set the amount of time, in seconds, that a client connection will attempt to reconnect */ "SSLCipherSuite": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" }, "SSLTruststoreFile": "${eagle.path.to.root}/estar/tpe/dynamic/mc2/configs/wmq/truststore.jks", "SSLKeystoreFile": "${eagle.path.to.root}/estar/tpe/dynamic/mc2/configs/wmq/keystore.jks" } ] }

The SSLCipherSuite should match the one configured on WebSphere MQ server. We should use the following table https://www.ibm.com/docs/en/ibm-mq/9.1?topic=jms-tls-cipherspecs-ciphersuites-in-mq-classes, column Equivalent CipherSuite (Oracle JRE).

The password for the keystore and truststore will be configured in the MC2JMS stream parameter SSLKeyStorePassword in Message Center Console.

The truststore.jks should have the WebSphere MQ root and intermediate certificates added.

The client certificate, intermediate and root certificates should be added to WebSphere MQ.

External Vendor Libraries

All external dependencies should be stored by this path: 

<path to TPE_FOLDER>/dynamic/mc2/sharedlibs/

List of libraries for WebSphere MQ version 7.x.x:

  • jms.jar

  • fscontext.jar

  • dhbcore.jar

  • connector.jar

  • com.ibm.mqjms.jar

  • com.ibm.mq.jmqi.jar

  • com.ibm.mq.headers.jar

  • CL3Nonexport.jar

  • CL3Export.jar

or:

  • CL3Export.jar

  • CL3Nonexport.jar

  • com.ibm.mq.headers.jar

  • com.ibm.mq.jmqi.jar

  • com.ibm.mqjms.jar

  • com.ibm.msg.client.jms.internal.jar

  • com.ibm.msg.client.jms.jar

  • com.ibm.msg.client.provider.jar

  • com.ibm.msg.client.wmq.common.jar

  • com.ibm.msg.client.wmq.factories.jar

  • com.ibm.msg.client.wmq.jar

  • com.ibm.msg.client.wmq.v6.jar

  • connector.jar

  • dhbcore.jar

  • fscontext.jar

  • jms.jar

Libraries for IBM WebSphere MQ 7.x (copied from 2017R2 QA):

sharedlibs (for WMQ 7).zip

Libraries for IBM WebSphere MQ 7.x (copied from ETL):

sharedlibs (for WMQ 7) copied from ETL.zip - 3 set of libraries (use from 2017R2 QA region);

List of libraries for WebSphere MQ version 9.x.x.x:

  • bcpkix-jdk15on-157.jar

  • bcprov-jdk15on-157.jar

  • com.ibm.mq.allclient.jar

  • com.ibm.mq.headers.jar

  • com.ibm.mq.jar

  • com.ibm.mq.jmqi.jar

  • com.ibm.mq.jms.Nojndi.jar

  • com.ibm.mqjms.jar

  • fscontext.jar

  • jms.jar

Libraries for IBM WebSphere MQ 9.x:

MQ 9 libs.zip