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, 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. Following is examples of such vendor provided documentation:
Besides the dynamic properties and set methods described in the previous section, some providers also support additional configuration via the Broker URI (as query parameters added to the URI):
|JMS Connection Factory Implementation||com.ibm.mq.jms.MQQueueConnectionFactory||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"|