Anbindung von MQ an WebSphere ApplicationServer WAS 6.1 (MDB EJB 3.0 - Modul) unter Benutzung von Listener Ports





Im Folgenden zeige ich ein kleines Testprojekt, das ein EJB 3.0 Modul mit MQ verknüpft. Das EJB-Modul kommuniziert synchron (SessionBeans) und asynchron (MessageDriven Bean) mit MQ. Ich stelle die Sourcen der Beans und die Konfigurationsdateien für ein Deployment auf WebSphere ApplicationServer 6.1.0.25 Verfügung und beschreibe detailliert, wie die Einstellungen im WAS vorzunehmen sind.


Ich baue ein Projekt mit zwei stateless Sessionsbeans und einer MDB:
Die erste SessionBean SimpleMessageClientSB verschickt eine Nachricht an die Queue jms/Queue.
Die zweite SessionBean SynchConsumerSB empfängt synchron Nachrichten aus der Queue jms/mymsg
Die MDB SimpleMessageBean reagiert asynchron auf Nachrichten die in die Queue jms/Queue eingestellt werden.


Es wird WebSphere WAS 6.1.0.27 und MQ V7.0 verwendet. Eine Möglichkeit der Anbindung von WAS an MQ ist die Verwendung von Listener Ports. Das wird im folgenden Beispiel verwendet.

Dazu sind folgende Dateien notwendig:

SimpleMessageClientSB.java

ISimpleMessageClientSBRemote.java

SynchConsumerSB.java

ISynchConsumerRemote.java

SimpleMessageBean.java

ejb-jar.xml

ibm-ejb-jar-bnd.xml



Die Konfiguration von MQ und WAS :

MQ ist auf einem Computer mit Namen 'rechnermq' installiert und hört auf dem Standardport 1414. Ein Queuemanager QM_ENTWGF zwei Queues postcard und mymsg sind eingerichtet. Der zugehörige Kanal heißt S_ENTWGF

Konfiguration der Anbindung von MQ an WAS 6.1 über Listener Ports:

  1. Öffne die Administrationskonsole von WebSphere.

  2. Öffne Ressourcen/JMS/JMS-Provider

  3. Öffne WebSphere MQ messaging provider mit dem Geltungsbereich Knoten

  4. Klicke auf Verbindungs-Factory für Warteschlangen dann neu

  5. Trage folgende Werte ein:

    Name: BspCF (administrativ)

    JNDI-Name:jms/ConnectionFactory

    host: rechnermq

    port: 1414

    Channel: S_ENTWGF

    Transporttyp: CLIENT ( hier wird MQ über TCP/IP angesprochen; im Fall Bindungenwerden die Prozesse direkt miteinenader verknüpft; das ist natürlich nur möglich wenn MQ und WAS auf derselben Maschine laufen)

  6. Klicke Anwenden und speichern

  7. Gehe zurück zu WebSphere MQ messaging provider

  8. Klicke auf Warteschlangen und neu

  9. Trage folgende Werte ein:

    Name: Bsp1Queue

    JNDI-Name:jms/Queue

    Name der Basiswarteschlange: postcard

    Name des Basis-Queue-Managers: QM_ENTWGF

    CCSID: 850 ( Dieser Wert kann aus dem MQ-Explorer erfahren werden)

  10. Klicke Anwenden und speichern

  11. Trage eine zweite Warteschlange mit den Werten ein:

    Name: Bsp2Queue

    JNDI-Name:jms/mymsg

    Name der Basiswarteschlange: mymsg

    Name des Basis-Queue-Managers: QM_ENTWGF

    CCSID: 850 ( Dieser Wert kann aus dem MQ-Explorer erfahren werden)

  12. Klicke Anwenden und speichern

    Jetzt muss der Listener Port für die MDB eingerichtet werden:

  13. Öffne Server/Anwendungsserver

  14. Wähle den Server aus ( i.A. Server1)

  15. Öffne das Menü Übertragungen/Messaging

  16. Klicke auf Message Listener Service

  17. Klicke auf Listener Ports und dann neu

  18. Trage die Werte ein:

    Name: WasMqListenerPort

    JNDI-Name der Verbindungsfactory: jms/ConnectionFactory

    JNDI-Name der Destination: jms/Queue

  19. Klicke Anwenden und speichern

  20. Starte den WAS neu