This page contains a common JMS configuration.
JMS component configuration:
This article describes the JMS component configuration - it defines all JMS components which will be used in MC2.
...
...
...
title | Path to components |
---|
...
...
title | Warning |
---|
...
...
The following is a common configuration format of components.json:
components.json
Code Block | ||
---|---|---|
|
...
|
...
{
"Components |
...
": [ //* ActiveMQ: { "componentName": "eagle-amq", "componentClass": "org.apache.activemq.camel.component.ActiveMQComponent", "connectionFactory": "#{wrapper:amqconnPool_native[amqConnFactory]}" //"#{cf:amqConnFactory}" }, { "componentName": "eagle-amq-tds", "componentClass": "org.apache.activemq.camel.component.ActiveMQComponent", "connectionFactory": "#{wrapper:single_amqconnPool_native[amqConnFactoryTds]}" //"#{cf:amqConnFactory}" }, { "componentName": "eagle-amq-no-pool", "componentClass": "org.apache.activemq.camel.component.ActiveMQComponent", "connectionFactory": "#{wrapper:single_amqconnPool_native[amqConnFactory]}" }, //* IBM WebSphere MQ (IBM MQ): { "componentName": "wmq", "componentClass": "org.apache.camel.component.jms.JmsComponent", "connectionFactory": "#{wrapper:connPool[wmqConnFactory]}"//"#{cf:wmqConnFactory}" }, { "componentName": "wmq-tds", "componentClass": "org.apache.camel.component.jms.JmsComponent", "connectionFactory": "#{wrapper:single_connPool[wmqConnFactory]}"//"#{cf:wmqConnFactory}" }, { "componentName": "wmq-no-pool", "componentClass": "org.apache.camel.component.jms.JmsComponent", "connectionFactory": "#{cf:wmqConnFactory}" } //============================ Components with SSL ================================== , { "componentName": "wmqssl", "componentClass": "org.apache.camel.component.jms.JmsComponent", "connectionFactory": "#{wrapper:connPool[wmqConnFactorySSL]}" }, { "componentName": "wmqssl-no-pool", "componentClass": "org.apache.camel.component.jms.JmsComponent", "connectionFactory": "#{cf:wmqConnFactorySSL}" }, { "componentName": "eagle-amqssl", "componentClass": "org.apache.activemq.camel.component.ActiveMQComponent", "connectionFactory": "#{wrapper:amqconnPool_native[amqConnFactorySSL]}" }, { "componentName": "eagle-amqssl-no-pool", "componentClass": "org.apache.activemq.camel.component.ActiveMQComponent", "connectionFactory": "#{cf:amqConnFactorySSL}" } ] , "ConnectionFactories": { //*** reference: cf "wmqConnFactory": { "class": "com.ibm.mq.jms.MQConnectionFactory" } , "amqConnFactory": { "class": "org.apache.activemq.ActiveMQConnectionFactory", "parameters": { "UserName": "#{stream:USERID}", "Password": "#{stream:USERPASSWORD}"} } , "amqConnFactoryTds": { "class": "org.apache.activemq.ActiveMQConnectionFactory", //* AMQ connection factory for topic durable subscription "parameters": { "UserName": "#{stream:USERID}", "Password": "#{stream:USERPASSWORD}", |
...
" |
...
ClientID": " |
...
#{stream:CLIENT_ID}" } } |
...
|
...
, |
...
|
...
|
...
"wmqConnFactorySSL": { "class": |
...
"com.ibm.mq.jms.MQConnectionFactory", |
...
|
...
|
...
" |
...
parameters": |
...
{ "SSLFipsRequired" : false , |
...
...
|
...
|
...
|
...
|
...
"SSLSocketFactory": "#{instance:SSLSocketFactory}" , |
...
...
|
...
|
...
|
...
" |
...
SSLCipherSuite" : |
...
"TLS_RSA_WITH_AES_128_CBC_SHA256" } |
...
} |
...
, |
...
"amqConnFactorySSL": { " |
...
class": " |
...
org.apache.activemq.ActiveMQSslConnectionFactory", |
...
"parameters": { " |
...
KeyAndTrustManagers": "#{ |
...
instance:KeyAndTrustManagers}", |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
"UserName": "#{stream:USERID}", |
...
|
...
...
|
...
" |
...
Password": "#{stream: |
...
USERPASSWORD}" |
...
} } } , "Wrappers": { |
...
"connPool<T>": { " |
...
class": " |
...
org.springframework.jms.connection.CachingConnectionFactory", // #{wrapper:connPool[wmqConnFactory]} |
...
|
...
|
...
" |
...
parameters": { " |
...
setTargetConnectionFactory": " |
...
#{cf:<T>}", " |
...
setSessionCacheSize": |
...
" |
...
100" }, |
...
" |
...
init_method": "initConnection", "destroy_method": "by default" } |
...
|
...
, "single_connPool<T>": { "class": "org.springframework.jms.connection.SingleConnectionFactory", // #{wrapper:connPool[wmqConnFactory]} |
...
"parameters": { "setTargetConnectionFactory": "#{cf:<T>}", |
...
|
...
|
...
|
...
|
...
|
...
"ClientId": "#{stream:CLIENT_ID}" |
...
|
...
|
...
}, |
...
|
...
"init_method": "initConnection", " |
...
destroy_method": " |
...
destroy" } |
...
|
...
|
...
, " |
...
amqconnPool": { "class": "org.springframework.jms.connection. |
...
CachingConnectionFactory", "parameters": { " |
...
TargetConnectionFactory": "#{cf: |
...
amqConnFactory}", " |
...
SessionCacheSize": "10" }, "init_method": " |
...
initConnection", "destroy_method": "by default" |
...
|
...
|
...
|
...
|
...
} , " |
...
amqconnPool_native<T>": { " |
...
class": " |
...
org.apache.activemq.pool.PooledConnectionFactory", "parameters": { |
...
" |
...
ConnectionFactory": " |
...
#{cf:<T>}" }, "init_method": " |
...
start", "destroy_method": " |
...
stop" } , "single_amqconnPool_ |
...
native<T>": { "class": "org.apache.activemq.pool.PooledConnectionFactory", "parameters": { "ConnectionFactory": "#{cf: |
...
<T>}", "MaxConnections": " |
...
1", "MaximumActiveSessionPerConnection": "1" |
...
|
...
}, |
...
|
...
"init_method": "start", "destroy_method": "stop" |
...
|
...
} |
...
Note | ||
---|---|---|
| ||
MC2 provides out-of-box configuration – we will store all predefined components in a single file, but users are able to extend number of JMS components by creation of new component-*.json file similar one above. |
JMS connection configuration:
...
}
}
|
JMS Connection Configuration
The configuration files of JMS connections are stored by this path:
Info |
---|
...
Path to connectionsestar/tpe/dynamic/mc2/eaglejms/connections/*.json |
...
This is an example of the format of JMS configuration of connections
...
:
connections.json
Code Block | ||
---|---|---|
|
...
...
{
"Region": "Specific Oracle SID of the region", /*Specific Oracle SID of region name to which this config belongs*/
"Connections": [
{
"ConnectionName": "mywmq.connection", /* do NOT use underscore character ("_") in name*/
"ComponentName": "wmq", /* reference to component name defined in components.json */
"Parameters": { // Some specific parameters
"port": 1415,
"ctransportType": 1 ,
"clientID": "client ID" /* sets Client ID */
},
/* JNDI has a higher priority: if not null then this object will be used as a JMS
connection factory */
//"JndiConnectionFactory": "my.jndi.connection.factory1"
}
]
}
|
...
...
JndiConnectionFactory - property is not supported yet.
...
You may need to make a JMS Connection configuration for more than one JMS Component
...
. For example, when you interact with more than one JMS broker. In this case, you would add one more section in connection.json config,
...
as shown in the example below:
connections.json
Code Block | ||
---|---|---|
|
...
...
{
"Region": "Specific Oracle SID of the region", /*Specific Oracle SID of region name to which this config belongs*/
"Connections": [
{ // First connection
"ConnectionName": "my.FIRST.amq.connection", /* do NOT use underscore character ("_") in name*/
"ComponentName": "amq", /* reference to component name defined in components.json */
/* JNDI has a higher priority: if not null then this object will be used as a JMS connection factory */
//"JndiConnectionFactory": "my.jndi.connection.factory",
"Parameters": {
"brokerURL": "tcp://*****.eagleinvsys.com:61616" /* connection url (AMQ): Host name or IP + port */
}
},
{ // Second connection config
"ConnectionName": "my.jndi.wmq.connection", /* do NOT use underscore character ("_") in name*/
"ComponentName": "wmq", /* reference to component name defined in components.json */
"Parameters": { // Some specific parameters
"transportType": 1,
"port": 1414,
"channel": "",
"queueManager": "",
"HostName": ""
}
/* JNDI has a higher priority: if not null then this object will be used as a JMS connection factory */
//"JndiConnectionFactory": "my.jndi.connection.factory"
}
]
}
|
...
Info |
---|
ConnectionName - all connection names must be unique |
...
|
...
|
...
|
...
|
...
|
Consider
...
the following example of adding a User Name and Password, if you have to connect to JMS broker with your credentials
...
:
connections.json
Code Block | ||
---|---|---|
|
...
...
{
"Region": "Specific Oracle SID of the region", /*Specific Oracle SID of region name to which this config belongs*/
"Connections": [
{
"ConnectionName": "myactivemq.connection",
"ComponentName": "eagle-amq",
"Parameters": {
"brokerURL": "tcp://xxxxxx.eagleinvsys.com:61616", /* connection url: Host name or IP + port */
"UserName": "#{stream:USERID}", /* just copy it as is - it will be JMS Connection User value from Stream parameters*/
"Password": "#{stream:USERPASSWORD}" /* just copy it as is - it will be JMS Connection Password value from Stream parameters*/
},
/* JNDI has a higher priority: if not null then this object will be used as a JMS connection factory */
//"JndiConnectionFactory": "my.jndi.connection.factory1"
}
]
}
|
External
...
Vendor Libraries
In most cases, to
...
enable JMS Messaging
...
, you
...
need to make all dependencies available to
...
MC2.
All external dependencies
...
must be stored ineagle/estar/tpe/dynamic/mc2/sharedlibs/.