Mustercode 'TCPIP Client Nodes' erweitern
Diese Erweiterung veranschaulicht, wie der Mustercode anstelle des im asynchronen
Mustercode beschriebenen Nachrichtenflusses 'TCPIPServerSimulation' durch die
Eingliederung eines separaten, eigenständigen TCP/IP-Servers erweitert
werden kann, der so konfiguriert ist, dass er Daten an einen verbundenen Client
zurückmeldet.
Außerdem wird bei dieser Erweiterung erläutert, wie einige
Verbindungseigenschaften durch Verwendung der lokalen Umgebung überschrieben werden
können.
Übersicht über die Mustercodeerweiterung:
- Der Eingabenachricht, die in die Warteschlange 'TCPIP_ASYNC_IN' eingereiht
wird, können Informationen zum Hostnamen und Port des TCP/IP-Servers hinzugefügt werden.
- Der JavaCompute-Knoten im Nachrichtenfluss 'TCPIPAsyncOut' kopiert diese
Informationen in die lokale Umgebung.
- Der TCPIPClientOutput-Knoten wird in der Ansicht 'Eigenschaften' auf der
Registerkarte Anforderung so konfiguriert, dass
bestimmte Verbindungsdetails von der lokalen Umgebung überschrieben werden können.
Die Werte, mit denen die Angaben für den Port und/oder Hostnamen überschrieben
werden sollen, sind in der lokalen Umgebung gespeichert und sorgen dafür, dass der
TCPIPClientOutput-Knoten versucht, mithilfe der Verbindungsdetails in der
lokalen Umgebung eine Verbindung herzustellen.
- Daher kann die Nachricht dynamisch und ohne Änderungen am Nachrichtenfluss
'TCPIPAsyncOut' an Ihren TCP/IP-Server weitergeleitet werden.
- Die neuen Verbindungsdetails müssen auch im TCPIPClientInput-Knoten im
Nachrichtenfluss 'TCPIPAsyncIn' festgelegt werden. Dadurch wird sichergestellt, dass dieser
Knoten die Antwort vom TCP/IP-Server empfängt.
- In der Mustereingabenachricht und der im Mustercode bereitgestellten
Datei mit der Erweiterung .mbtest wird davon ausgegangen,
dass der TCP/IP-Server am Port localhost:7778 empfangsbereit ist.
Mustercodeerweiterung ausführen:
- Ändern Sie die Nachrichtenflüsse entsprechend für die Kommunikation mit Ihrem
TCP/IP-Server und verwenden Sie dabei eine der folgenden Optionen:
- Wenn Ihr TCP/IP-Server am Port localhost:7778 empfangsbereit ist,
ändern Sie den Wert der Eigenschaft Verbindungsdetails des TCPIPClientInput-Knotens im
Nachrichtenfluss 'TCPIPAsyncIn' in localhost:7778. Speichern Sie den Nachrichtenfluss.
- Wenn Ihr TCP/IP-Server nicht am Port localhost:7778 empfangsbereit ist,
führen Sie folgende Schritte aus:
- Öffnen Sie im Projekt 'TCPIPClientNodesSampleFlowProject' die Datei
AsyncExtendMessage.xml.
- Ändern Sie in der Datei AsyncExtendMessage.xml
den Port und/oder Hostnamen von localhost:7778 in den Port, an dem
Ihr TCP/IP-Server empfangsbereit ist. Speichern Sie die Datei.
- Öffnen Sie die Datei TCPIPAsyncExtendTest.mbtest. Klicken Sie auf
In Warteschlange einreihen, klicken Sie auf
Import Source (Quelle importieren) und importieren Sie
die Datei AsyncExtendMessage.xml.
Speichern Sie diese
Testdatei.
- Ändern Sie die Eigenschaft Verbindungsdetails des
TCPIPClientInput-Knotens im Nachrichtenfluss 'TCPIPAsyncIn' in den Wert, der in der
Testnachricht angegeben ist.
Speichern Sie den Nachrichtenfluss.
- Stellen Sie sicher, dass die BAR-Datei
TCPIPClientNodesSampleArchive.bar die asynchronen und nicht
die synchronen Nachrichtenflüsse enthält.
Wenn Sie die Nachrichtenflüsse gemäß den
zuvor beschriebenen Schritten geändert haben, führen Sie folgende Schritte aus, um die
BAR-Datei neu zu erstellen und zu speichern:
- Wählen Sie im WebSphere Message Broker Toolkit die Datei TCPIPClientNodesSampleArchive.bar aus und öffnen Sie diese mit dem Brokerarchiveditor.
Wählen Sie die Registerkarte
Vorbereiten aus und klicken Sie auf
Brokerarchiv erstellen.
Speichern Sie die Brokerarchivdatei.
- Implementieren Sie die BAR-Datei in der Ausführungsgruppe
'TCPIPClientNodesSampleExecutionGroup'.
- Öffnen Sie die Datei TCPIPAsyncExtendTest.mbtest,
klicken Sie auf In Warteschlange einreihen und
anschließend auf Nachricht senden. Die folgenden
Ereignisse treten ein:
- Die geänderte Nachricht wird in den Nachrichtenfluss 'TCPIPAsyncIn' gesendet.
- Der JavaCompute-Knoten kopiert die aktualisierten Werte für Hostnamen und Port in
die lokale Umgebung
($LocalEnvironment/Destination/TCPIP/Output/).
- Der TCPIPClientOutput-Knoten sendet die Daten unter Verwendung der
Verbindungsdetails, die in der lokalen Umgebung überschrieben wurden.
- Der TCP/IP-Server ruft dieses Daten ab und meldet sie zurück an denselben Port.
- Diese Daten werden vom TCPIPClientInput-Knoten im Nachrichtenfluss 'TCPIPAsyncIn'
empfangen und auf dieselbe Weise wie beim asynchronen Mustercode verarbeitet.
- Klicken Sie auf Aus Warteschlange entfernen und
anschließend auf Nachricht abrufen.
- Überprüfen Sie, ob die aktualisierte Nachricht erfolgreich über WebSphere MQ
zurückgesendet wurde:
- Rufen Sie die Antwortnachricht im Fenster 'Ausführliche Eigenschaften'
mithilfe des XML-Struktur-Viewers auf.
- Vergleichen Sie diese Nachricht mit der Nachricht, die ursprünglich durch
das Ereignis des Einreihens in die Warteschlange gesendet wurde.
Sofern der TCP/IP-Server den
Nachrichtenhauptteil nicht geändert hat, sind die beiden Nachrichten identisch.
Wenn alle vorherigen Schritte erfolgreich ausgeführt wurden, ist der Mustercode
damit beendet.
Sie können die Knoten in den drei Nachrichtenflüssen anzeigen, um nachzuvollziehen, wie die Ergebnisse erzielt wurden.
Die Eigenschaft Verbindungsdetails auf der Registerkarte
Grundeinstellung sieht ähnlich wie in folgendem Screenshot
aus:
Zurück zum Beginn des
Mustercodes