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 | Warning |
---|
...
...
The following is a common configuration format of components.json:
...
language | js |
---|---|
theme | RDark |
title | components.json |
linenumbers | true |
...
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" } ] } |
...
title | Future implementation |
---|
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/.