Description:
This ControllerService serves as a general factory service to serving vendor specific
instances of the javax.jms.ConnectionFactory. It does so by allowing user to
configure vendor specific properties as well as point to the location of the vendor
provided JMS client libraries so the correct implementation of the javax.jms.ConnectionFactory
can be found, loaded, instantiated and served to the dependent Processors (see PublishJMS, ConsumeJMS).
To accommodate variety of JMS vendors and their implementation of the ConnectionFactory
this ControllerService exposes only 3 static configuration properties that are common across many implementations
of the ConnectionFactory. The rest of the configuration properties are set following
Java Beans convention (see below).
The 3 static configuration properties are:
- MQ ConnectionFactory Implementation - A fully qualified name of the JMS ConnectionFactory implementation
class (i.e., org.apache.activemq.ActiveMQConnectionFactory)
- MQ Client Libraries path - Path to the directory with additional resources (i.e., JARs, configuration files etc.) to be added
to the classpath. Such resources typically represent target MQ client libraries for the ConnectionFactory
implementation. It is optional if you are using Apache ActiveMQ since its libraries are distributed with this component.
- Broker URI - URI pointing to the network location of the JMS Message broker. For example, 'tcp://myhost:61616' for ActiveMQ or simply 'myhost:1414'.
The rest of the properties are set as Dynamic Properties following Java Beans
convention where a property name is derived from the set* method of the vendor specific ConnectionFactory's implementation.
For example, com.ibm.mq.jms.MQConnectionFactory.setChannel(String) would imply 'channel' property and
com.ibm.mq.jms.MQConnectionFactory.setTransportType(int) would imply 'transportType' property.
For the list of available properties please consult vendor provided documentation. Here is an example for
IBM's com.ibm.mq.jms.MQConnectionFactory