//

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
2

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>
17

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">
9

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>
10

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.

Beitrag teilen

Gefällt mir

0

//

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.