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:
ISimpleMessageClientSBRemote.java
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:
Öffne die Administrationskonsole von WebSphere.
Öffne Ressourcen/JMS/JMS-Provider
Öffne WebSphere MQ messaging provider mit dem Geltungsbereich Knoten
Klicke auf Verbindungs-Factory für Warteschlangen dann neu
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)
Klicke Anwenden und speichern
Gehe zurück zu WebSphere MQ messaging provider
Klicke auf Warteschlangen und neu
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)
Klicke Anwenden und speichern
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)
Klicke Anwenden und speichern
Jetzt muss der Listener Port für die MDB eingerichtet werden:
Öffne Server/Anwendungsserver
Wähle den Server aus ( i.A. Server1)
Öffne das Menü Übertragungen/Messaging
Klicke auf Message Listener Service
Klicke auf Listener Ports und dann neu
Trage die Werte ein:
Name: WasMqListenerPort
JNDI-Name der Verbindungsfactory: jms/ConnectionFactory
JNDI-Name der Destination: jms/Queue
Klicke Anwenden und speichern
Starte den WAS neu