Beliebte Suchanfragen
//

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.

Beitrag teilen

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//
Jetzt für unseren Newsletter anmelden

Alles Wissenswerte auf einen Klick:
Unser Newsletter bietet dir die Möglichkeit, dich ohne großen Aufwand über die aktuellen Themen bei codecentric zu informieren.