This controller service 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).

All JMS vendors and ConnectionFactory implementations are supported as long as the configuration values can be set through set methods (detailed explanation in the last paragraph). However some helpful accommodation are done for the following JMS vendors:

This controller service exposes only a single mandatory static configuration property that are required across all implementations. The rest of the configuration properties are either optional or vendor specific.

The mandatory configuration property is:

The following static configuration properties are optional but required in many cases:

The rest of the vendor specific configuration are set through dynamic properties utilizing the Java Beans convention where a property name is derived from the set method of the vendor specific ConnectionFactory's implementation. For example, would imply 'channel' property and would imply 'transportType' property. For the list of available properties please consult vendor provided documentation. Following is examples of such vendor provided documentation:

Sample controller service configuration for IBM MQ

Property Value Static/Dynamic Comments
JMS Connection Factory Implementation Static Vendor provided implementation of QueueConnectionFactory
JMS Client Libraries /opt/mqm/java/lib Static Default installation path of client JAR files on Linux systems
JMS Broker URI mqhost01(1414),mqhost02(1414) Static Connection Name List syntax. Colon separated host/port pair(s) is also supported
JMS SSL Context Service Static Only required if using SSL/TLS
channel TO.BAR Dynamic Required when using the client transport mode
queueManager PQM1 Dynamic Name of queue manager. Always required.
transportType 1 Dynamic Constant integer value corresponding to the client transport mode. Default value is "Bindings, then client"