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.
On this page
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