On This Page:
JMS Components
MC2 provides out-of-box configuration. All predefined components are stored in a single file. However, you can extend the number of JMS components by creation of new component-*.json file similar to the one described below.
The configuration files of JMS components (components.json) are stored in this path:
...
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" } } } | ||||||||
JMS Connection Configuration
Configuration files of JMS connections are stored by this path:
Info | ||
---|---|---|
Info | ||
| ||
| ||
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:
Configuration files of JMS connections are stored by this path:
| |
estar/tpe/dynamic/mc2/eaglejms/connections/*.json |
Format This is an example of the format of JMS configuration of connections (example):
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" } ] } |
...
Note | ||
---|---|---|
| ||
JndiConnectionFactory - property is not supported yet. |
In case if you suddenly for some reason You may need to make a JMS Connection configuration for more than one JMS Component (, for instance, when you need to interract with couple of JMS brokers),you have to just add interact with more than one JMS broker. In this case, you must add one more section in connection.json config, like as shown in the example below:
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 | ||
---|---|---|
| ||
|
...
|
...
|
...
|
...
|
...
|
Consider situation the following example of adding a User Name and Password, if you have had to connect to JMS broker with your credentials (add UserName & Password):
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 in eagle/estar/tpe/dynamic/mc2/sharedlibs/.