WebSphereMQ Integration mit Mule ESB Community Edition
11.3.2011 | 1 Minuten Lesezeit
Mule ESB ist eine Opensource-Implementierung eines Enterprise Service Bus. Die kostenpflichtige Enterprise Edition von Mule ESB setzt sich von der freien Community Edition unter anderem durch die out-of-the-box Integration des IBM WebSphereMQ Messaging-Produkts ab. Der folgende Beitrag erläutert, wie man auch in der Community Edition schnell und einfach ein WebSphereMQ-System als JMS-Provider anbindet.
Zunächst sind einige Bibilotheken mit der WebSphereMQ Client-API dem Klassenpfad hinzuzufügen. Im Einzelnen sind dies
- com.ibm.mq.jar
- com.ibm.mqjms.jar
- dbhcore.jar
Diese JARs sind Teil der Installation eines WebSphereMQ-Servers. Alternativ können diese aus dem kostenfreien WebSphereMQ Client verwendet werden. Die kostenfreie Client-Variante ist allerdings nicht XA-fähig. Die JARs sind nach
1$MULE_HOME/lib/opt
zu kopieren.
Zur Konfiguration des WebSphereMQ-System müssen nun folgende Parameter bekannt sein:
- IP/Hostname
- Portnummer
- Name der QueueManagers
- Name des Kanals
- User / Password
Der entsprechende Mule-Konnektor kann dann wie folgt konfiguriert werden:
1<jms:connector 2 name="WebsphereMQConnector" 3 connectionFactory-ref="MQConnectionFactory" 4 specification="1.0.2b" 5 username="mquser" 6 password="password" 7 numberOfConsumers="1"/> 8<spring:bean 9 id="MQConnectionFactory" 10 class="com.ibm.mq.jms.MQQueueConnectionFactory"> 11 <spring:property name="transportType" value="1"/> 12 <spring:property name="hostName" value="localhost"/> 13 <spring:property name="port" value="1414"/> 14 <spring:property name="channel" value="MY.CHANNEL"/> 15 <spring:property name="queueManager" value="MY.QM"/> 16</spring:bean>
Um die Namespaces „jms“ and „spring“ benutzen zu können, müssen diese im Root-Element der mule-config.xml
deklariert werden. Vorausgesetzt, Sie nutzen Mule in Version 3.0, kann die wie folgt aussehen:
1<mule xmlns="http://www.mulesoft.org/schema/mule/core" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns:spring="http://www.springframework.org/schema/beans" 4 xmlns:jms="http://www.mulesoft.org/schema/mule/jms" 5 xsi:schemaLocation=" 6 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 7 http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.0/mule.xsd 8 http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/3.0/mule-jms.xsd">
Danach kann der WebSphereMQConnector z.B. zur Definition von Inbound JMS-Endpoints verwendet werden:
1<endpoint 2 name="MyInQueue" 3 address="jms://queue:MY.QUEUE.IN" 4 connector-ref="WebsphereMQConnector"/> 5... 6<flow id="MyFlow"> 7 <inbound-endpoint ref="MyInQueue" /> 8 ... 9</flow>
Für JMS Consumer ist zu beachten, dass für zu lesende Warteschlangen mindestens die Privilegien GET, INQ und BROWSE vergeben worden sind. Dies ist hier detailiert beschrieben. JMS Producer benötigen PUT-Privilegien.
Fazit: wenn Ihre Queues nicht an verteilten Transaktionen teilnehmen müssen, kommen Sie auch mit der kostenfreien Community Edtion des Mule ESB aus, wenn Sie ein WebSphereMQ-System als JMS-Provider integrieren möchten.
Weitere Beiträge
von Tobias Trelle
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Tobias Trelle
Software Architect
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.