PostCard - Funktionsweise

Zum Hauptinhalt

Initialisierung

PostCard überprüft beim Start, welche WS-Manager auf dem Computer vorhanden sind, und initialisiert den Anmeldedialog entsprechend (ist kein WS-Manager vorhanden, werden Sie aufgefordert, die Standardkonfiguration zu installieren).

PostCard verwendet den JMS-Aufruf queueConnectionFactory.createQueueConnection(), um eine Verbindung zum Standard-WS-Manager herzustellen.

Nachrichten empfangen

Solange PostCard aktiv ist, wird eine Warteschlange mit dem Namen postcard regelmäßig auf von anderen PostCard-Exemplaren eingehende Nachrichten abgefragt. (Wenn die Warteschlange postcard noch nicht vorhanden ist, wird sie von PostCard erstellt).

Beim Start von PostCard wird für die lokale PostCard-Warteschlange das JMS-Objekt QueueReceiver erstellt. Als Parameter wird eine Zeichenfolge für den Selektor zur Verfügung gestellt, die die zu empfangenden Nachrichten aus der Warteschlange anhand der Korrelations-ID (Feld CorrelId) herausfiltert. In der Zeichenfolge für den Selektor wird festgelegt, dass der PostCard-Client nur Nachrichten empfangen soll, bei denen die Angaben im Feld CorrelID mit dem Kurznamen des Benutzers übereinstimmen. Der Wortlaut der Nachricht wird dann im JMS-PostCard-Fenster angezeigt.

Nachrichten senden

Wenn Sie im Feld An: keinen Computernamen eingeben, nimmt PostCard an, dass sich der Empfänger auf demselben WS-Manager befindet.

Wenn Sie einen Namen eingegeben haben, prüft PostCard, ob es einen WS-Manager mit diesem Namen gibt - zunächst unter Verwendung des Namens genau wie angegeben, dann unter Verwendung eines Präfixes im selben Format wie durch die Standardkonfiguration erstellt.

In beiden Fällen gibt PostCard den Befehl session.createQueue("postcard") aus, und setzt den Namen des Basis-WS-Managers auf die angegebene Zeichenfolge.

Schließlich wird aus dem Kurznamen und dem eingegebenen Text eine JMS-BytesMessage-Nachricht erstellt und der Befehl queueSender.send(theMessage) zur Einreihung der Nachricht in der Warteschlange ausgeführt.

Übertragung der PostCard-Nachrichten

Wenn andere Exemplare von PostCard auf diesem Computer denselben Warteschlangenmanager und dieselbe Warteschlange verwenden, werden die Nachrichten einfach in diese eine Warteschlange gestellt und von dort abgerufen. Allerdings wird geprüft, ob der auf diesem Computer installierte WebSphere MQ-Code ordnungsgemäß konfiguriert ist und richtig funktioniert.

Damit die PostCard-Nachricht an den anderen WS-Manager gesendet werden kann, muss zu ihm eine Verbindung bestehen. Diese Verbindung besteht, weil entweder beide WS-Manager demselben Cluster angehören oder weil Sie diese Verbindung explizit hergestellt haben. PostCard kann daher davon ausgehen, dass der WS-Manager erreichbar ist, und direkt Verbindung mit ihm aufnehmen, die Warteschlange öffnen und eine Nachricht hineinstellen (wie bereits beschrieben). Für den Abruf der Nachricht ist dann der WebSphere MQ-Clustercode allein zuständig. Mit anderen Worten, PostCard verwendet nur den für das Einreihen von Nachrichten in die Warteschlange relevanten Code und muss sich nicht darum kümmern, ob die Nachricht auch tatsächlich bei dem anderen Computer ankommt.

Beim Aufruf von session.createSender("postcard") in PostCard durchsucht der Clustercode das Repository nach dem anderen WS-Manager und überprüft, ob die Warteschlange tatsächlich vorhanden ist. War dies aus irgendwelchen Gründen nicht möglich, wird eine Ausnahmebedingung zurückgegeben.

Beim Aufruf von queueSender.send(theMessage) öffnet der Clustercode einen Kanal zu dem anderen WS-Manager (gegebenenfalls wird der Kanal erstellt) und sendet die Nachricht.

Anschließend kann der Kanal gelöscht werden, falls er nicht vom Clusteroptimierungscode benötigt wird. Wenn sich die WS-Manager auf verschiedenen Computern befinden, wird dies alles vom Clustercode ausgeführt.

Nicht zustellbare Nachrichten

Falls Sie eine PostCard-Nachricht an "John" gesendet, jedoch kein PostCard-Exemplar unter dem Kurznamen "John" aktiviert haben, würde diese Nachricht normalerweise für eine unbegrenzte Zeit in der Warteschlange bleiben. Um dies zu verhindern, legt PostCard für die Nachrichtendauer (Feld Expiry) im Nachrichtendeskriptor (MQMD) 48 Stunden fest. Nach dieser Zeit wird die Nachricht gelöscht, ganz gleich, wo sie sich befindet (sogar, wenn sie gerade übertragen wird).


Marken

Sie können Kommentare zur Onlinehilfe sowie zu den Büchern an folgende Adresse senden: idrcf@hursley.ibm.com

(C) IBM Corporation 1996, 2002. Alle Rechte vorbehalten.