Einstellungen für den JMS-Provider
Bei JMS werden provider-spezifische Informationen in sogenannten Administrated-Objects gehalten. Für den JMS-Adapter sind dabei die QueueConnectionFactory und die Queue relevant. Solche administrierbaren Objekte werden entweder dynamisch geladen (zum Beispiel aus dem lokalen Dateisystem oder über JNDI aus LDAP-Servern) oder direkt erzeugt.
Bereits existierende administrierbare Objekte können aus dem lokalen Dateisystem geladen werden. Hierzu stehen die beiden folgenden Parameter zur Verfügung
· JMS.FileNameQueueConnectionFactory=<path/filename>
· JMS.FileNameQueue=<path/filename>
Da einerseits nicht immer schon administrierbare Objekte existieren und andererseits keine Provider-Spezifika im Adapter vorhanden sein sollen (JMS-Schnittstellen sind zwar povider-unabhängig, administrierbare Objekte jedoch hochgradig provider-abhängig), wurde eine zusätzliche, einfache Möglichkeit geschaffen, in der Konfiguration des JMS-Adapters provider-spezifische Daten mit abzulegen. Dies vereinfacht und flexibilisiert die Gesamtkonfiguration deutlich.
Im Folgenden wird kurz auf die allgemeine Administration von QueueConnectionFactory und Queue am Beispiel von SonicMQ und WebSphereMQ eingegangen.
Die Wahl des JMS-Providers erfolgt durch Angabe der implementierenden Klasse der QueueConnectionFactory, zum Beispiel

JMS.QueueConnectionFactoryImpl.classname=progress.message.jclient.QueueConnectionFactory (bei SonicMQ)
JMS.QueueConnectionFactoryImpl.classname=com.ibm.mq.jms.MQQueueConnectionFactory (bei WebSphereMQ)
Wie und welche Messaging-Parameter gesetzt werden ist abhängig vom Provider. Bei SonicMQ wird zum Beispiel die Adresse des Provider im constructor der QueueConnectionFactory gesetzt, während dies bei WebSphereMQ über eine SetMethode geschieht:

JMS.QueueConnectionFactoryImpl.constructor=java.lang.String p49512:2506 (bei SonicMQ)
JMS.QueueConnectionFactoryImpl.method.setHostName=java.lang.String p49512:2506 (bei WebSphereMQ)
Zusätzlich sind zumeist eine Vielzahl von provider-abhängigen Parametern oder Flags zu setzen. Bei WebSphereMQ zum Beispiel die Information, ob der Provider über JNI oder TCP/IP angesprochen werden soll (ersteres ist die Voreinstellung, aber nur auf einer lokalen Maschine möglich). Den Verbindungstyp TCPIP setzt man dabei über eine Konstante, zum Beispiel

JMS.QueueConnectionFactoryImpl.method.setTransportType=java.lang.Integer {com.ibm.mq.jms.JMSC.MQJMS_TP_CLIENT_MQ_TCPIP}
Für Queues gilt das Gleiche wie für QueueConnectionFactrories. Wenn Sie zum Beispiel eine JMS-Nachricht über WebSphereMQ verschicken wollen, der Empfänger aber lediglich native WebSphereMQ-Nachrichten unterstützt, empfiehlt sich zum Beispiel folgender Eintrag in der Konfiguration:

JMS.QueueImpl.method.setTargetClient=java.lang.Integer {com.ibm.mq.jms.JMSC.MQJMS_CLIENT_NONJMS_MQ}
Welche Einstellungen genau gesetzt werden müssen/können, entnehmen Sie bitte der Dokumentation Ihres JMS-Providers.