Tutorial 13

Transcription

Tutorial 13
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Tutorial 13
CICS-Zugriff mit Hilfe von MQ und einem Java-Klienten
1 Anlegen eines Kontos mittels der CICS-Transaktion "NACT"
Dieses Tutorial benötigt eine Java 2 SDK- sowie eine WebSphere MQ-Installation auf einem Windows
XP-Rechner (Service Pack 2). Sind SDK sowie MQ nicht vorinstalliert, müssen Sie zuerst das Tutorial
11 durchführen, das die Installationen von SDK und MQ behandelt.
Aufgabe: Loggen Sie sich in CICS des OS/390-Servers "Lucas" ein und starten Sie dort die Transaktion NACT
(siehe auch die Tutorien 3 und 5 in der C-Version). Legen Sie für sich ein Konto mit der Nummer
"100xx" oder "10xxx" an, wobei die xx oder xxx für die Nummer Ihres Prakt-Accounts auf Lucas
stehen. Sollte das zu Ihrer Account-Nr. gehörende Konto schon existieren, so modifizieren Sie dieses
Konto. Füllen Sie alle notwendigen Felder aus. Ihr Vor- und Zuname (oder alle Vor- und Zunamen der
Teilnehmer, die gemeinsam dieses Tutorial bearbeiten) müssen in die Felder eingetragen werden. Bei
allen anderen Feldern können Sie gerne kreativ sein.
Aufgabe: Arbeiten Sie das Tutorial gründlich durch und vollziehen Sie alles, was hier vorgestellt wird, nach.
1 Einführung
1.1 Übersicht
Electronic Mail ist ein weit verbreiteter Messaging Service. Ein Klient schickt eine Nachricht an einen
Mail-Server. Dieser speichert die Nachricht in eine als Mailbox bezeichnete Queue, die der Server auf
seinem Plattenspeicher unterhält. Der Besitzer dieser Mailbox kann die Nachricht dort später abholen.
Mail
PräsentationsLogik
Mailbox
BusinessLogik
Klient
Server
Abbildung 1
Message oriented Middleware (MOM), auch als Message based Queuing (MBQ) bezeichnet, ist ein
ähnliches Verfahren. Im Gegensatz zu Electronic Mail speichert der Klient hierbei die Nachricht in
einer Queue auf seinem eigenen Plattenspeicher. Eine MOM-Instanz auf dem Klienten transportiert
die Nachricht dann in die Queue des MOM-Servers. Die beiden MOM-Instanzen arbeiten nach ACIDPrinzipien; die Auslieferung der Nachricht an die Server-Queue wird garantiert.
Die Verbindung zwischen Klient und Server wird als Channel bezeichnt (nicht zu verwechseln mit dem
Begriff Channel in der S/390 Ein-/Ausgabe-Architektur). Ein MOM-Channel ist unidirectional.
1
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Sender-Queue
Empfänger-Queue
Klient
Server
Abbildung 2
Eine Verbindung zwischen zwei Rechnern besteht häufig aus zwei Channels (und zwei Queues auf
jedem Rechner), jeweils einen für das Senden und einen für das Empfangen.
Klient
Server
Abbildung 3
Websphere MQ ist ein populäres MOM-Produkt der Firma IBM. Es ist de facto für alle Plattformen
verfügbar, u.a. für Windows, Linux, Solaris, AIX, HP-UX Digital Unix, OS400, OS/390 sowie z/OS.
1.2 Aufgabenstellung
Die vorliegende Aufgabe betrifft eine Klient/Server-Anwendung, bei der die Business-Logik in der
Form einer CICS-Anwendung auf einem OS/390-Server vorliegt. Die Präsentations-Logik ist in Form
einer Java-Anwendung auf dem Klienten vorhanden. Klient und Server kommunizieren über zwei
Websphere MQ-Kanäle miteinander.
Java
PräsentationsLogik
MQ-Kanal
MQ-Kanal
Windows XP-Klient
CICS
BusinessLogik
OS/390-Server
Abbildung 4
Es ist Websphere MQ und eine Java Präsentations-Logik auf einem Windows XP-Klienten zu
installieren. Anschließend soll die Java Präsentations-Logik über Websphere MQ und dem
Websphere MQ-CICS Bridge mit der CICS Business-Logik auf dem OS/390-Rechner kommunizieren.
Es wird hierfür der OS/390-Rechner lucas.informatik.uni-leipzig.de eingesetzt, auf dem MQSeries
(Vorgängerversion von Websphere MQ) und die CICS Business-Logik bereits vorinstalliert sind.
Auf dem OS/390-Rechner lucas.informatik.uni-leipzig.de ist eine CICS-Transaktion mit dem Namen
(Transaktions-ID) NACT installiert. Wir wollen auf die COMMAREA der NACT CICS-Transaktion
mittels eines Java GUI-Klienten zugreifen. Die Verbindung Klient zu dem OS/390-CICS Transaction
Server soll mit Hilfe von Websphere MQ erfolgen. Wir benutzen hierfür einen Windows XP-Klienten,
auf dem eine Java-GUI für die NACT CICS-Transaktion sowie ein Websphere MQ-Server von uns
installiert wird. Auf unserem OS/390-Server lucas.informatik.uni-leipzig.de ist ein MQSeries-Server mit
einer MQSeries-CICS Bridge bereits installiert. Diese Konfiguration ist in Abbildung 5 dargestellt.
2
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Java GUI
Java GUI
MQClient
MQ
MQSeries
Server
TCP/IP
Windows XP
MQSeries
MQSeries
Server
CICS
OS/390
Klient
Server
Abbildung 5
MQClient und der Klienten-seitige Websphere MQ-Server laufen unter Windows XP in zwei
getrennten Adressräumen.
Auf der Klientenseite unterhält der Websphere MQ-Server eine Java Bridge Task (eine Java-Klasse).
Auf der Serverseite unterhält der dortige Websphere MQ-Server eine CICS Bridge Task. Jeder der
beiden MQ-Server unterhält einen Queue Manager sowie ein vom Benutzer erstelltes
Personalisierungsprogramm (hier als MQCommunicator bezeichnet).
Jeder Queue Manager unterhält eine Queue für das Senden von Nachrichten an den Partner-Queue
Manager, die Transmission Queue, sowie eine Queue zum Empfangen von Nachrichten von dem
Partner-Queue Manager, die Reply-To Queue. Zusätzlich besitzt jeder Queue Manager noch eine
weitere Queue, die Remote Queue. Jedem der beiden Queue Manager sind zwei (MQ) Channels
zugeordnet. Auf der OS/390-Seite verbindet die Reply-To Queue die CICS Bridge des dortigen Queue
Managers mit der CICS NACT-Anwendung. Auf der Windows XP-Seite verbindet eine Server
Connection die Java-Applikation mit der Reply-To Queue. Jeder Queue Manager verwendet aus
Sicherheits- und Verfügbarkeitsgründen weitere interne Objekte, die nicht weiter interessieren sollen.
Der hier verwendete Klienten-seitige Queue Manager benutzt den Namen PRAKT20.NACT. Der hier
verwendete Server-seitige Queue Manager benutzt den Namen MQA1.
2 Vorschau und Bezeichnungen
Java
Bridge
Task
Queue Manager
Name =
PRAKT20.NACT
Channels
MQServer
Queue Manager
Name =
MQA1
CICS
Bridge
Task
MQSeriesServer
Windows XP-Klient
OS/390-Server
Abbildung 6
PRAKT20.NACT ist der Name des Windows Queue Managers (Remote Queue Manager).
MQA1 ist der Name des OS/390 Queue Managers (Server Queue Manager).
Die Verbindung zwischen dem Queue Manager auf dem OS/390-Server und dem Queue Manager auf
dem Windows XP-Klienten halten Channels aufrecht. Ein Sendekanal verschickt Daten und ein
Empfängerkanal empfängt Daten.
3
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Zuerst sind die MQ-Objekte auf der Klientenseite zu erstellen. Dies sind der Queue Manager
PRAKT20.NACT sowie drei Warteschlangen und drei Kanäle.
Anschließend sind MQSeries-Objekte auf dem S/390-Server zu erstellen. Der Queue Manager ist
schon vorhanden. Doch je zwei Warteschlangen und zwei Kanäle müssen hier erstellt werden.
Nun ist eine Java-Anwendung zu compilieren.
Im vorletzten Schritt sind der lokale Queue Manager sowie die beiden Kanäle zwischen den Queue
Managern auf Klinten- sowie Serverseite zu starten, damit so eine Kommunikation zwischen beiden
Queue Managern möglich wird.
Zuletzt ist die Java-Anwendung zu starten, welche die grafische Oberfläche für die CICS-NACTTransaktion liefert.
3 Lokale MQ-Objekte erstellen
Loggen Sie sich unter Windows unter dem Benutzer Übung "z/OS und OS/390" oder einem anderen
Benutzer mit eingeschränkten Rechten (aber mit MQ-Administrationsrechten) ein und starten Sie
anschließend den WebSphere MQ-Explorer wie folgt:
Start Alle Programme IBM WebSphere MQ Express ein Klick auf WebSphere MQ-Explorer (s.
Abbildung 7)
Abbildung 7
Es erscheint das MQ-Konsolenstamm (Console Root)-Fenster (Abbildung 8). Hiermit wird MQ
administriert und gesteuert.
4
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 8
3.1
Den lokalen Queue-Manager erstellen
Abbildung 9 zeigt ein Skript, dass eventuell vorhandene Queue Manager löscht, einen Queue
Manager PRAKT20.NACT erstellt und anschließend startet. Es kann dieses Skript als .bat-Datei
erstellt und anschließend ausgeführt werden. Alternativ dazu können in einem DOS-Fenster die
entsprechenden Befehle eingegeben werden.
5
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
@echo off
rem *****************************************************************
rem * This command file sets up the MQ Queue definitions
rem *****************************************************************
rem The parameter specifies the queue manager name
rem eg. CrtQ default for PRAKT20
title Setting up MQ Series for PRAKT20
echo * End the MQ queue manager if already running
echo endmqm -i PRAKT20.NACT
endmqm -i PRAKT20.NACT
echo.
echo * Delete the old MQ queue manager if one exists
echo dltmqm PRAKT20.NACT
dltmqm PRAKT20.NACT
echo.
echo * Create the new queue manager
echo crtmqm -q PRAKT20.NACT
crtmqm -q PRAKT20.NACT
echo.
echo * Start the new queue manager
echo strmqm PRAKT20.NACT
strmqm PRAKT20.NACT
echo.
pause
exit
Abbildung 9
Aufgabe: Legen Sie einen Queue Manager PRAKT<xx>.NACT oder PRAK<xxx>.NACT an und starten Sie ihn.
xx bzw. xxx stehen für die Nummer Ihres PRAKT- oder PRAK-Accounts auf dem Leipziger S/390Server Lucas.
Wenn der Queue Manager erfolgreich erstellt und gestartet wurde, wird dies im KonsolenstammFenster wie Abbildung 10 demonstriert durch einen grünen Pfeil nach oben angezeigt.
6
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 10
Wenn Sie Zweifel an der Aktualität des Konsolenstamm-Fensters haben, also beispielsweise der
gerade erfolgreich erstellte Queue Manager nicht angezeigt wird, muß eine Aktualisierung erfolgen.
Man markiert das Objekt, das man aktualisieren möchte, indem man mit der rechten Maustaste auf
dieses klickt. Anschließend wählt man "Aktualisieren" aus (Abbildung 11).
Abbildung 11
7
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
3.2
Lokale Warteschlangen und Kanäle anlegen
Im Konsolenstamm-Fenster öffnen wir den Ordner "Warteschlangen" (Abbildung 12). Dieser ist noch
leer.
Abbildung 12
Beim Klicken auf den Ordner „Erweitert" ergeben sich 6 Unterordner (siehe Abbildung 13).
8
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 13
Diese 6 Unterordner enthalten alle keine Objekte. Z.B. enthält der Ordner "Kanäle" keine Objekte
(siehe Abbildung 14).
Abbildung 14
9
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Die je 3 Warteschlangen und Kanäle können mittels der in Abbildung 15 gezeigten Windows-BatchDatei erzeugt werden. Dazu sind beide Dateien (Abbildung 15 und Abbildung 16) im gleichen
Verzeichnis zu erstellen und anschließend die Batch-Datei zu starten.
Aufgabe: Legen Sie unter Ihrem lokalen Queue Manager die drei lokalen Warteschlangen und drei Kanäle an.
Achten Sie darauf, dass die Ziffernfolge "20" wieder durch Ihre Nummer Ihres PRAKT- oder PRAKAccounts auf Lucas ersetzt wird.
@echo off
title Define MQ definitions
echo Ensure MQ Series is running
echo strmqm PRAKT20.NACT
strmqm PRAKT20.NACT
echo.
echo Load the MQ definitions for the QManager PRAKT20.NACT
echo runmqsc "< MQadmvs.def > MQadmvs.out"
runmqsc < MQadmvs.def > MQadmvs.out
echo.
:quit
pause
exit
Abbildung 15
DEFINE QLOCAL('MQA1') REPLACE +
TRIGDATA(PRAKT20.NACT.TO.MQA1) +
TRIGGER +
INITQ(SYSTEM.CHANNEL.INITQ) +
USAGE(XMITQ)
DEFINE QLOCAL('PRAKT20.NACT.REPLYQ') REPLACE +
DEFPSIST(YES) +
SHARE
DEFINE QREMOTE('PRAKT20.NACT.REMOTEQ') REPLACE +
RNAME('SYSTEM.CICS.BRIDGE.QUEUE') +
RQMNAME('MQA1')
DEFINE CHANNEL('PRAKT20.CLIENT') CHLTYPE(SVRCONN) TRPTYPE(TCP) +
MCAUSER(' ') REPLACE
DEFINE CHANNEL('PRAKT20.NACT.TO.MQA1') CHLTYPE(SDR) TRPTYPE(TCP) +
XMITQ('MQA1') +
CONNAME('139.18.4.36(1414)') +
MCAUSER(' ') REPLACE
DEFINE CHANNEL('MQA1.TO.PRAKT20.NACT') +
CHLTYPE(RCVR) +
TRPTYPE(TCP) +
SEQWRAP(999999999) +
MCAUSER(' ') REPLACE
Abbildung 16
10
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Die erfolgreich angelegten Warteschlangen werden nach eventuell erfolgter Aktualisierung im
Konsolenstamm-Fenster sichtbar (Abbildung 17).
Abbildung 17
Abbildung 18 zeigt die ebenfalls erstellten und im Konsolenstamm-Fenster sichtbar gemachten
Kanäle.
Abbildung 18
11
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
4 Erstellen der MQSeries-Objekte für den Queue Manager MQA1
auf OS/390-Seite
Nachdem alle MQ-Objekte auf der Windows-Seite installiert worden sind, müssen nun noch die
MQSeries-Objekte auf der OS/390-Seite installiert werden.
Zuerst verbinden wir uns mit dem OS/390-Server über einen TN3270-Klienten (3270 Emulator) und
loggen uns wie gewohnt, beispielsweise unter "PRAKT20" und dem dazugehörigen Passwort, ein. Es
öffnet sich das CUSTOMPAC MASTER APPLICATION MENU-Panel. In dieses geben wir "M" ein
(Abbildung 19).
CUSTOMPAC MASTER APPLICATION MENU
OPTION ===> M
P
DB2
M
SD
BMR
X
SCROLL ===> PAGE
PDF
DB2
MQ
SDSF
BMR READ
EXIT
F1=HELP
F7=UP
-
ISPF/Program Development Facility
Perform DATABASE 2 interactive functions
MQSeries
System Display and Search Facility
BookManager Read (Read Online Documentation)
Terminate ISPF using list/log defaults
F2=SPLIT
F8=DOWN
F3=END
F9=SWAP
F4=RETURN
F10=LEFT
Abbildung 19
12
F5=RFIND
F11=RIGHT
F6=RCHANGE
F12=RETRIEVE
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Es erscheint das IBM MQSeries for OS/390 – Main Menu:
IBM MQSeries for OS/390 - Main Menu
Complete fields. Then press Enter.
Action . . . . . . . . 1
1.
2.
3.
4.
Display
Define
Alter
Delete
5. Perform
6. Start
7. Stop
Object type . . . . . ____________ +
Name . . . . . . . . . ________________________________________________
Like . . . . . . . . . ________________________________________________
Connect to queue
manager . . . . . . : MQA1
Target queue manager : MQA1
Response wait time . : 30
seconds
(C) Copyright IBM Corporation 1993,1999. All rights reserved.
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F4=Prompt
F6=QueueMgr F9=Swap
F10=Messages F12=Cancel
Abbildung 20
In diesem Menu erstellen, konfigurieren und administrieren wir die MQSeries Objekte. Dazu stehen
uns 7 Operationen (Action) zur Verfügung:
Display
Define
Alter
Delete
Perform
Start
Stop
– Anzeige der Objekteigenschaften
– Definieren eines Objektes
– Veränderung der Objekteigenschaften
– Löschen eines Objektes
– Ausführen einer bestimmten MQSeries-Operation
– Start eines MQSeries-Objektes, wie z.B. eines Channels
– Stopp eines MQSeries-Objektes, wie z.B. eines Channels
Durch Eingabe der zugehörigen Nummer wird die jeweilige Aktion gestartet.
13
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Im Object type-Feld werden die Objekte, mit denen Operationen durchgeführt werden sollen,
spezifiziert. Eine Auswahl dieser Objekte erhält man durch Drücken der F4-Taste:
Select a Valid Object Type
Object type . . . . . . . . . 2
Queue objects
1. QUEUE . .
2. QLOCAL. .
3. QREMOTE .
4. QALIAS. .
5. QMODEL. .
Other objects
6. PROCESS .
7. NAMELIST.
8. MANAGER .
9. STGCLASS.
10. SYSTEM. .
11. SECURITY.
F1=Help
Any type
Local
Remote
Alias
Model
Process
Namelist
Queue manager
Storage class
System function
Security
F2=Split
F9=Swap
Channel objects
12. CHANNEL . . .
13. CHLSENDER . .
14. CHLSERVER . .
15. CHLRECEIVER .
16. CHLREQUESTER.
17. CHLSVRCONN. .
18. CHLCLNTCONN .
19. CHLCLUSRCVR .
20. CHLCLUSSDR. .
Cluster objects
21. CLUSQMGR. . .
22. CLUSCHL . . .
23. CLUSQ . . . .
Any type
Sender
Server
Receiver
Requester
Server-connection
Client-connection
Cluster-receiver
Cluster-sender
Queue manager
Channel
Queue
F12=Cancel
Abbildung 21
Die Auswahl der Objekte erfolgt ebenfalls durch Angabe einer Nummer, z.B. „2“ (s. Abbildung 21).
Im Feld Name kann der Name des Objektes angegeben werden. Wenn ein Objekt erstellt werden soll,
ist die Angabe eines Namens notwendig. Sonst kann durch Eingabe eines „∗“ auch eine Gesamtliste
aller bereits erstellten Objekte angezeigt werden.
Das Feld Like wird nur zum Erstellen von Objekten benötigt.
Im unteren Bereich werden die Angaben des Queue Managers angezeigt. Connect to Queue Manager
zeigt an, mit welchem Queue Manager man verbunden ist (hier MQA1). Target Queue Manager zeigt
den Queue Manager an, auf dem bestimmte Operationen ausgeführt werden sollen (hier ebenfalls
MQA1). Das kann der verbundene Queue Manager sein (connected) aber auch ein entfernter
(remote).
Das Feld Response wait time gibt an, in welcher Zeit der Target Queue Manager antworten soll.
Möchte man diese verändern, betätigt man die F6-Taste. Es öffnet sich ein Panel, in dem sich die
neue Response wait time eintippen läßt. Ein guter Wert ist 30. Nach dem Eintippen Eingabetaste
betätigen.
Hinweis:
MQA1
ist
der
einzige
Queue
Manager,
14
der
auf
der
OS/390-Seite
läuft.
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Zuerst schauen wir uns an, welche Systemeinstellungen vorliegen.
IBM MQSeries for OS/390 - Main Menu
Complete fields. Then press Enter.
Action . . . . . . . . 1
1.
2.
3.
4.
Display
Define
Alter
Delete
5. Perform
6. Start
7. Stop
Object type . . . . . SYSTEM
+
Name . . . . . . . . . *
Like . . . . . . . . . ________________________________________________
Connect to queue
manager . . . . . . : MQA1
Target queue manager : MQA1
Response wait time . : 30
seconds
(C) Copyright IBM Corporation 1993,1999. All rights reserved.
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F4=Prompt
F6=QueueMgr F9=Swap
F10=Messages F12=Cancel
Abbildung 22
Action ist gleich 1 (Display), Object Type ist gleich System; Name ist gleich ∗. Wenn dies nicht so ist,
dann die entsprechenden Felder mit diesen Werten überschreiben.
Die Eingabetaste führt Sie in den nächsten Sceen.
Display a System Function
Select function type, then press Enter to display details.
Function type
. . . . . . . 1
1. Distributed queueing
2. Threads
3. Page set usage
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F9=Swap
F10=Messages F12=Cancel
Abbildung 23
Geben Sie als Function type "1" ein und beenden Sie diese Aktion mit der Eingabetaste.
15
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Es werden nun die Systemeinstellungen des Queue Managers MQA1 angezeigt.
Display a System Function
.---------------------------------------------------------------------------.
S |
Display messages
Row 1 of 11 |
|
|
|
|
F | CSQX830I !MQA1 CSQXRDQM Channel initiator active
|
| CSQX845I !MQA1 CSQXRDQM TCP/IP system name is TCPIP
|
| CSQX846I !MQA1 CSQXRDQM TCP/IP listener started, for port number 1414
|
| CSQX849I !MQA1 CSQXRDQM LU 6.2 listener not started
|
| CSQX831I !MQA1 CSQXRDQM 8 adapter subtasks started, 8 requested
|
| CSQX832I !MQA1 CSQXRDQM 5 dispatchers started, 5 requested
|
| CSQX840I !MQA1 CSQXRDQM 3 channel connections current, maximum 200
|
| CSQX841I !MQA1 CSQXRDQM 2 channel connections active, maximum 200
|
| CSQX842I !MQA1 CSQXRDQM 0 channel connections starting,
|
| 1 stopped, 0 retrying
|
| CSQ9022I !MQA1 CSQXCRPS ' DISPLAY DQM' NORMAL COMPLETION
|
|
|
| Command ===> ____________________________________________________________ |
| F1=Help
F2=Split
F3=Exit
F7=Bkwd
F8=Fwd
F9=Swap
|
| F12=Cancel
|
'---------------------------------------------------------------------------'
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F9=Swap
F10=Messages F12=Cancel
Abbildung 24
Sehen Sie sich die ersten drei Zeilen an. Diese sind besonders wichtig. Der Channel initiator muss
aktiv sein, damit Channels senden können. Der Listener ist auf TCP/IP-Basis gesetzt, weil die
Kommunikation zwischen den Queue Managern per TCP/IP durchgeführt werden soll. Es kann auch
ein LU6.2 Listener aktiviert werden. Der TCP/IP Listener ist für den MQSeries Standard-Port 1414
gestartet worden.
Nur wenn diese Einstellungen stimmen, dann funktioniert auch dieses Tutorial. Sollte in diesen drei
Zeilen etwas anderes stehen, dann kontaktieren Sie bitte den Praktikumsbetreuer.
Betätigen Sie die F3-Taste.
Aufgabe: Prüfen Sie, ob der Queue-Manager MQA1 alte Objekte (Queues und Channels) enthält, deren Namen
Ihre User-ID beinhalten. Wenn ja, dürfen und müssen Sie diese alten Objekte löschen.
Aufgabe: Weisen Sie anhand von Screenshots nach, dass Sie alle alten Objekte wirklich gelöscht haben.
Erzeugen Sie dazu einen Screenshot ähnlich Abbildung 25, der das Fehlen alter Queues nachweist.
Erzeugen Sie weiterhin hinreichend viele Screenshots, die das Fehlen alter Channels nachweisen
(Abbildung 26,Abbildung 27). Achten Sie darauf, dass die Screenshots nicht zu viel Speicherplatz in
Anspruch nehmen. Am besten ist das JPEG-Format, das mit weniger als 90 KByte je Screenshot
auskommt. Im Ausnahmefall ist auch das Bitmap-Format (< 250 KByte) möglich.
16
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
List Queues
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
Name
CICS01.INITQ
MQA1.DEAD.QUEUE
MQA1.DEFXMIT.QUEUE
PRAKT14.NACT
PRAKT14.NACT.REPLYQ
PRAKT15.NACT
PRAKT15.NACT.REPLYQ
PRAKT16.NACT
PRAKT16.NACT.REPLYQ
PRAKT21.NACT
PRAKT21.NACT.REPLYQ
PRAKT47
PRAKT68.NACT
PRAKT68.NACT.REPLYQ
PRAK137
PRAK138
PRAK139
PRAK140
PRAK141
PRAK142
PRAK143
Row 1 of 75
4=Delete
Type
QLOCAL
QLOCAL
QLOCAL
QLOCAL
QREMOTE
QLOCAL
QREMOTE
QLOCAL
QREMOTE
QLOCAL
QREMOTE
QLOCAL
QLOCAL
QREMOTE
QLOCAL
QLOCAL
QLOCAL
QLOCAL
QLOCAL
QLOCAL
QLOCAL
Warteschlangen
PRAKT20*
sind gelöscht
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F5=Refresh
F6=Clusinfo F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F12=Cancel
Abbildung 25
List Channels
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
6=Start
7=Stop
_
_
_
_
_
_
_
_
_
_
_
_
_
Name
PRAKT16.NACT.WIN.OS
PRAKT17.NACT.OS.WIN
PRAKT17.NACT.WIN.OS
PRAKT21.NACT.TO.MQA1
PRAKT35.NACT.MQA1.TO
PRAKT35.NACT.TO.MQA1
PRAKT36.NACT.OS.WIN
PRAKT37.NACT.OS.WIN
PRAKT39.NACT.OS.WIN
PRAKT39.NACT.WIN.OS
PRAKT68.CLIENT
PRAKT68.NACT.OS.WIN
PRAKT68.NACT.WIN.OS
Row 14 of 55
4=Delete
Kanäle
PRAKT20.*
sind gelöscht
5=Perform
Type
CHLRECEIVER
CHLSENDER
CHLRECEIVER
CHLRECEIVER
CHLSENDER
CHLRECEIVER
CHLSENDER
CHLSENDER
CHLSENDER
CHLRECEIVER
CHLSVRCONN
CHLSENDER
CHLRECEIVER
Status
INACTIVE
INACTIVE
INACTIVE
INACTIVE
STOP
INACTIVE
STOP
STOP
STOP
INACTIVE
INACTIVE
STOP
INACTIVE
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F5=Refresh
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F11=Status
F12=Cancel
Abbildung 26
17
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
List Channels
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
6=Start
7=Stop
_
_
_
_
_
_
_
_
_
_
_
_
_
Name
CSQ1.TO.MQA1
MQA1.TO.CSQ1
MQA1.TO.MQA2
MQA1.TO.PRAKT04.NACT
MQA1.TO.PRAKT21.NACT
MQA2.TO.MQA1
PRAKT04.NACT.TO.MQA1
PRAKT116.NACT.OS.WIN
PRAKT116.NACT.WIN.OS
PRAKT15.NACT.OS.WIN
PRAKT15.NACT.WIN.OS
PRAKT16.NACT.OS.WIN
PRAKT16.NACT.WIN.OS
Row 1 of 54
4=Delete
Kanäle
MQA1.*.PRAKT20.*
sind gelöscht
5=Perform
Type
CHLRECEIVER
CHLSENDER
CHLSENDER
CHLSENDER
CHLSENDER
CHLRECEIVER
CHLRECEIVER
CHLSENDER
CHLRECEIVER
CHLSENDER
CHLRECEIVER
CHLSENDER
CHLRECEIVER
Status
INACTIVE
INACTIVE
RUN
STOP
STOP
RUN
INACTIVE
INACTIVE
INACTIVE
STOP
INACTIVE
STOP
INACTIVE
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F5=Refresh
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F11=Status
F12=Cancel
Abbildung 27
Aufgabe: Erstellen Sie - so wie nachfolgend beschrieben – die Warteschlange und die beiden Kanäle. Ersetzen
Sie "20 " überall durch Ihre PRAKT- oder PRAK-Nr.
4.1
Transmission Queue auf MQA1 erstellen
Wir erstellen nun die Transmission Queue “PRAKT20.NACT”. Die Transmission Queue auf der
OS/390-Seite muss den selben Namen wie der Remote Queue Manager besitzen!
18
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
IBM MQSeries for OS/390 - Main Menu
Complete fields. Then press Enter.
Action . . . . . . . . 2
1.
2.
3.
4.
Display
Define
Alter
Delete
5. Perform
6. Start
7. Stop
Object type . . . . . QLOCAL
+
Name . . . . . . . . . PRAKT20.NACT
Like . . . . . . . . . ________________________________________________
Connect to queue
manager . . . . . . : MQA1
Target queue manager : MQA1
Response wait time . : 30
seconds
(C) Copyright IBM Corporation 1993,1999. All rights reserved.
Command ===>
__________________________________________________________________
F1=Help
F2=Split
F3=Exit
F4=Prompt
F6=QueueMgr F9=Swap
F10=Messages F12=Cancel
Abbildung 28
Eingabe von “2” im Feld Action
Eingabe von “QLOCAL” im Feld Object type
Eingabe von “PRAKT20.NACT” im Feld Name
Bestätigung mit der Eingabetaste.
Define a Local Queue
Complete fields, then press F8 for further fields, or Enter to define queue.
More:
Queue name . . . . . . . . . PRAKT20.NACT
Description . . . . . . . . . ________________________________
________________________________
Put enabled .
Get enabled .
Usage . . . .
Storage class
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Y Y=Yes,N=No
Y Y=Yes,N=No
X N=Normal,X=XmitQ
DEFAULT
Command ===>
__________________________________________________________________________
F1=Help
F2=Split
F3=Exit
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F12=Cancel
Abbildung 29
19
+
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Es kann eine Beschreibung eingegeben werden (Description).
Put enabled muss “YES” lauten, somit können Nachrichten in dieser Queue abgelegt werden.
Get enabled muss “YES” lauten, somit kann diese Queue Nachrichten an einen Remote Queue
Manager versenden.
Usage muss “X” lauten, damit wird die Transmission Queue definiert
Storage Class muss “DEFAULT” lauten; MQA1 hat nur diese Storage Class.
Mit der F8-Taste gelangen wir auf den nächsten Bildschirm zur Einstellung der Transmission Queue.
Die Einstellungen sollten so aussehen:
Define a Local Queue
Press F7 or F8 to see other fields, or Enter to define queue.
More:
Default persistence . . .
Default priority . . . .
Message delivery sequence
Permit shared access . .
Default share option . .
Index type . . . . . . .
Maximum queue depth . . .
Maximum message length .
Retention interval . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- +
N Y=Yes,N=No
0 0 - 9
F P=Priority,F=FIFO
Y Y=Yes,N=No
S E=Exclusive,S=Shared
N N=None,M=MsgId,C=CorrelId,T=MsgToken
999999999 0 - 999999999
4194304 0 - 4194304
999999999 0 - 999999999 hours
Cluster name . . . . . . . . ________________________________________________
Cluster namelist name . . . . ________________________________________________
Default bind . . . . . . . . O O=Open,N=Notfixed
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F12=Cancel
Abbildung 30
Message delivery sequence
Permit shared access
Default share option
auf “F” setzen
auf “Y” setzen, um shared access zu erlauben.
auf “S” setzen, um die Eigenschaft des shared access einzustellen.
Mit der F8-Taste den nächsten Bildschirm aufrufen. In diesem können die Trigger Daten und die
Initiation Queue definiert werden (siehe Abbildung 31).
20
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Display a Local Queue
Press F7 or F8 to see other fields, or Enter to refresh details.
More:
- +
Trigger Definition
Trigger type
Trigger
Trigger
Trigger
Trigger
. . . . . . . : F
set . . . . . .
message priority
depth . . . . .
data . . . . . .
:
:
:
:
F=First,E=Every,D=Depth,N=None
N Y=Yes,N=No
0 0 - 9
1
1 - 999999999
MQA1.TO.PRAKT20.NACT
Process name . . . . . . :
Initiation queue . . . . : SYSTEM.CHANNEL.INITQ
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F6=Clusinfo F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F12=Cancel
Abbildung 31
Wir definieren die Initiation Queue mit dem Namen „SYSTEM.CHANNEL.INITQ“.
Mit der F8-Taste gelangen wir auf den nächsten Bildschirm, in dem wir keine Einstellungen
vornehmen:
Define a Local Queue
Press F7 or F8 to see other fields, or Enter to define queue.
More:
- +
Event Control
Queue full . . . . . . . . E
E=Enabled,D=Disabled
Upper queue depth . . . . D E=Enabled,D=Disabled
Threshold . . . . . . . . 80
0 - 100 %
Lower queue depth . . . . D E=Enabled,D=Disabled
Threshold . . . . . . . . 40
0 - 100 %
Service interval . . . . . N H=High,O=OK,N=None
Interval . . . . . . . . . 999999999 0 - 999999999 milliseconds
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F12=Cancel
Abbildung 32
Wir betätigen noch einmal die F8-Taste.
21
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Folgender Bildschirm erscheint:
Define a Local Queue
Press F7 to see previous fields, or Enter to define queue.
More:
-
Backout Reporting
Backout threshold
. . . . 0
0=No backout reporting
Harden backout counter . . Y Y=Yes,N=No
Backout requeue name . . . ________________________________________________
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F12=Cancel
Abbildung 33
Harden Backout Counter auf „Y“ setzen, somit kann im Falle eines Problems die Queue
zurückgesetzt werden (back out).
Nun sind die Defnitionen für die Transmission Queue abgeschlossen und wir bestätigen mit der
Eingabetaste. Folgender Bildschirm wird angezeigt:
Define a Local Queue
Complete fields, then press F8 for further fields, or Enter to define queue.
More:
+
Queue name . . . . . . . . . PRAKT20.NACT
Description . . . . . . . . . ________________________________
________________________________
Put enabled .
Get enabled .
Usage . . . .
Storage class
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Y Y=Yes,N=No
Y Y=Yes,N=No
X N=Normal,X=XmitQ
DEFAULT
CSQ9022I !MQA1 CSQMMSGP ' DEFINE QLOCAL' NORMAL COMPLETION
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F12=Cancel
Abbildung 34
Die Nachricht besagt, dass die Definition erfolgreich war. Wir verlassen das Menu mit F12.
22
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
4.2
Kanäle auf MQA1 erstellen
Zuerst definieren wir den Sender Channel. Dazu im Feld Object type „CHLSENDER“ eingeben
(F4 13). Der Name des Sender Channels lautet „MQA1.TO.PRAKT20.NACT“ (s. Abbildung 35).
IBM MQSeries for OS/390 - Main Menu
Complete fields. Then press Enter.
Action . . . . . . . . 2
1.
2.
3.
4.
Display
Define
Alter
Delete
5. Perform
6. Start
7. Stop
Object type . . . . . CHLSENDER
+
Name . . . . . . . . . MQA1.TO.PRAKT20.NACT
Like . . . . . . . . . ________________________________________________
Connect to queue
manager . . . . . . : MQA1
Target queue manager : MQA1
Response wait time . : 30
seconds
(C) Copyright IBM Corporation 1993,1999. All rights reserved.
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F4=Prompt
F6=QueueMgr F9=Swap
F10=Messages F12=Cancel
Abbildung 35
Mit Eingabetaste bestätigen.
Im nächsten Panel werden die Eigenschaften des Sender Channels eingestellt.
Für die Übertragung der Nachrichten wird das TCP/IP-Protokoll benutzt. Im Feld Transport type geben
wir deswegen ein “T“ für das TCP/IP-Protokoll ein.
Im das Feld Connection name ist die IP-Adresse Ihres Windows-Rechners einzutragen. In Klammern
kann der für die Kommunikation genutzte Port folgen. Wird kein Port angegeben, wird der Port 1414
angenommen.
Sender Channel „MQA1.TO.PRAKT20.NACT“ verschickt Nachrichten, die auf der Transmission
Queue „PRAKT20.NACT“ zum Versenden abgelegt sind.
23
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Define a Sender Channel
Complete fields, then press F8 for further fields, or Enter to define channel.
More:
+
Channel name . . . . . . . . MQA1.TO.PRAKT20.NACT
Description . . . . . . . . . ________________________________
________________________________
Transport type
Connection name
LU6.2 mode name
LU6.2 TP name .
.
.
.
.
.
.
.
.
Transmission queue
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
T L=LU6.2,T=TCP/IP
139.18.4.54________________________________
________
________________________________
________________________________
. . . . . PRAKT20.NACT____________________________________
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F12=Cancel
Abbildung 36
Mit der Eingabetaste bestätigen. Nach Bestätigung F12-Taste drücken.
Wir definieren nun den Receiver Channel:
IBM MQSeries for OS/390 - Main Menu
Complete fields. Then press Enter.
Action . . . . . . . . 2
1.
2.
3.
4.
Display
Define
Alter
Delete
5. Perform
6. Start
7. Stop
Object type . . . . . CHLRECEIVER
+
Name . . . . . . . . . PRAKT20.NACT.TO.MQA1
Like . . . . . . . . . ________________________________________________
Connect to queue
manager . . . . . . : MQA1
Target queue manager : MQA1
Response wait time . : 30
seconds
(C) Copyright IBM Corporation 1993,1999. All rights reserved.
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F4=Prompt
F6=QueueMgr F9=Swap
F10=Messages F12=Cancel
Abbildung 37
Eingabetaste drücken.
24
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Das nächste Panel wiederum mit der Eingabetaste bestätigen. Es erscheint die Bestätigung der
Definiton des Channels und wir betätigen die F12-Taste.
Damit sind die Objekt-Definitionen auf der OS/390-Seite beendet.
5 JAVA-Anwendung vorbereiten
Die Bildschirmmaske für die von der NACT-Transaktion zurückgegebenen Daten erzeugt JavaProgrammcode, der in diesem Kapitel heruntergeladen werden soll. Anschließend sollen die für die
Übersetzung des JAVA-Codes notwendigen Pfade gesetzt werden. Zuletzt wird der JAVA-Code dann
in ein ausführbares JAVA-Programm übersetzt.
Aufgabe: Laden Sie sich – wie nachfolgend behandelt – die Java-Anwendung herunter. Entpacken Sie diese,
setzen Sie alle notwendigen Pfade und übersetzen Sie.
5.1
Java-Programmcode herunterladen und entpacken
Der Java-Programmcode befindet sich zum Herunterladen auf einem Leipziger Server. Laden Sie die
Datei Tutor 12_XP.zip mit den folgenden Zugangsdaten in Ihren Eigene Dateien-Bereich herunter:
Host:
Port:
Benutzername:
entferntes Verzeichnis:
139.18.12.179
21
tutor
tools
Das Passwort erhalten Sie von Ihrem Tutor. Beachten Sie, dass das Herunterladen manchmal nur im
passiven Transfermodus möglich ist.
Entpacken Sie anschließend die heruntergeladene Datei Tutor 12_XP.zip mit dem Windows XPExtrahier-Assistent, mit dem Total Commander oder mit einer anderen geeigneten Software.
5.2
Umgebungsvariablen
Nachdem MQ korrekt installiert wurde (s. Tutorial 11), befinden sich nun im Verzeichnis
C:\Programme\IBM\Source\C51Y1ML\MSI\Program Files\IBM\WebSphere MQ\Java\lib zwei Dateien,
die in den Classpath eingebunden werden müssen:
connector.jar
com.ibm.mq.jar
Start Systemsteuerung eventuell zur klassischen Ansicht wechseln Doppelklick auf System Klick auf Erweitert auf
Umgebungsvariablen ein Klick Klick auf Neu im Fenster
Benutzervariablen
Als Name der Variablen ist natürlich CLASSPATH einzutragen. Und als Wert der Variablen
C:\Programme\IBM\Source\C51Y1ML\MSI\Program Files\IBM\WebSphere MQ\Java\lib\connector.jar;
C:\Programme\IBM\Source\C51Y1ML\MSI\Program Files\IBM\WebSphere MQ\Java\lib\com.ibm.mq.jar;.
Der Punkt "." am Ende der Variablen ist wichtig!!! Denn der Punkt "." steht für ihr aktuelles
Verzeichnis. Ohne diese Sequenz würde der Java-Kompiler Klassen (= .class-Dateien) nicht finden,
25
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
die sich neben der mit javac <Hauptklasse> aufgerufenen Hauptklasse noch in ihrem aktuellen
Verzeichnis befinden.
Betätigen Sie dreimal den Button OK (einmal je Fenster) und schließen Sie das Fenster
Systemsteuerung.
Natürlich können die jar-Dateien auch nach C:\j2sdk1.4.2_05\jre\lib\ext kopiert werden, um
automatisch eingebunden zu werden. Vergessen Sie aber auch dann nicht, den Punkt in den
CLASSPATH aufzunehmen.
5.3
JAVA-Programme übersetzen
Um den gerade eingestellten Classpath zu aktivieren, sollte ein eventuell noch offenes DOS-Fenster
geschlossen sowie ein neues geöffnet werden.
Bevor das JAVA-Programm übersetzt wird, sollte überprüft werden, ob die Classpath-Variable wirklich
richtig gesetzt ist. Hierzu geben wir in dem neu geöffneten DOS-Fenster set classpath ein:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Dokumente und Einstellungen\zOS u. OS390>set classpath
CLASSPATH=C:\Programme\IBM\Source\C51Y1ML\MSI\Program Files\IBM\WebSphere MQ\Jav
a\lib\connector.jar;C:\Programme\IBM\Source\C51Y1ML\MSI\Program Files\IBM\WebSph
ere MQ\Java\lib\com.ibm.mq.jar;.
C:\Dokumente und Einstellungen\zOS u. OS390>
Abbildung 38
Haben Sie nun alle jar-Dateien in den Ordner C:\j2sdk1.4.2_05\jre\lib\ext kopiert und nur den Punkt in
den CLASSPATH aufgenommen, dann wird die Ausgabe natürlich nur so lauten:
C:\>set classpath
Classpath=.
C:\>
Abbildung 39
Wir benutzen einen JAVA-Klienten, der die Präsentationslogik für unseren CICS-Zugriff enthält. Der
entsprechende JAVA-Quellcode befindet sich in der Datei MQClient.java sowie einer Reihe weiterer
∗.java-Dateien. Wir aktivieren das schon geöffnete DOS-Fenster und wechseln in dieses Verzeichnis,
das die Datei MQClient.java enthält.
In diesem Verzeichnis befinden sich ein Unterverzeichnis („images“) sowie acht Dateien (siehe
Abbildung 40):
26
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
C:\Dokumente und Einstellungen\Übung\Eigene Dateien\JavaProgram>dir
Volume in Laufwerk C: hat keine Bezeichnung.
Volumeseriennummer: F033-0747
Verzeichnis von C:\Dokumente und Einstellungen\Übung\Eigene Dateien\JavaProgram
18.12.2004
18.12.2004
28.11.2004
28.11.2004
28.11.2004
28.11.2004
18.12.2004
28.11.2004
29.11.2004
01.12.2004
01.12.2004
11:12
<DIR>
.
11:12
<DIR>
..
15:59
1.466 AccountHistory.java
15:59
1.339 AccountHistoryTableModel.java
15:59
5.393 AccountRecord.java
15:59
685 DisplayField.java
11:12
<DIR>
images
17:26
28.342 MQClient.java
23:40
9.364 MQCommunicator.java
15:50
190 starting.bat
15:52
561 starting.sh
8 Datei(en)
47.340 Bytes
3 Verzeichnis(se), 10.239.729.664 Bytes frei
Abbildung 40
Als nächstes werden die ∗.java-Programme in diesem Verzeichnis in Java Bytecode übersetzt. Dies
geschieht mit der Eingabe des folgenden Kommandos im DOS-Eingabefenster:
javac –g MQClient.java
Wenn wir uns nun mit dem Kommando dir das Verzeichnis mit unseren Java-Dateien ansehen, stellen
wir fest, dass für jede ∗.java-Datei mindestens eine ∗.class-Datei existiert (siehe Abbildung 41):
C:\Dokumente und Einstellungen\Übung\Eigene Dateien\JavaProgram>dir
Volume in Laufwerk C: hat keine Bezeichnung.
Volumeseriennummer: F033-0747
Verzeichnis von C:\Dokumente und Einstellungen\Übung\Eigene Dateien\JavaProgram
18.12.2004
18.12.2004
18.12.2004
28.11.2004
18.12.2004
28.11.2004
18.12.2004
28.11.2004
18.12.2004
28.11.2004
18.12.2004
18.12.2004
18.12.2004
18.12.2004
18.12.2004
18.12.2004
18.12.2004
18.12.2004
28.11.2004
18.12.2004
29.11.2004
01.12.2004
01.12.2004
11:21
<DIR>
.
11:21
<DIR>
..
11:21
1.556 AccountHistory.class
15:59
1.466 AccountHistory.java
11:21
1.545 AccountHistoryTableModel.class
15:59
1.339 AccountHistoryTableModel.java
11:21
4.504 AccountRecord.class
15:59
5.393 AccountRecord.java
11:21
678 DisplayField.class
15:59
685 DisplayField.java
11:12
<DIR>
images
11:21
582 MQClient$1.class
11:21
617 MQClient$2.class
11:21
617 MQClient$3.class
11:21
616 MQClient$4.class
11:21
621 MQClient$5.class
11:21
699 MQClient$6.class
11:21
20.946 MQClient.class
17:26
28.342 MQClient.java
11:21
6.738 MQCommunicator.class
23:40
9.364 MQCommunicator.java
15:50
190 starting.bat
15:52
561 starting.sh
20 Datei(en)
87.059 Bytes
3 Verzeichnis(se), 10.239.619.072 Bytes frei
Abbildung 41
27
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
6 Queue Manager und Kanäle starten
Aufgabe: Starten Sie – wie in diesem Kapitel beschrieben – alle Objekte von MQ auf Windows-Seite; zuerst den
Queue Manager und anschließend den Sende-Kanal.
Aufgabe: Starten Sie anschließend Ihren Sende-Kanal auf OS/390-Seite.
6.1
Starten und Aktivieren aller Objekte des Queue Managers PRAKT20.NACT
auf Windows XP-Seite
Wir wechseln in den MQ-Explorer. Der Queue Manager muss gestartet werden. Dazu mit der rechten
Maustaste auf Ihren Queue-Manager PRAKT20.NACT klicken und „Starten“ auswählen (Abbildung
42).
Abbildung 42
Es werden die drei Queues (Warteschlangen) und die drei Kanäle, die Sie mit Hilfe des Skriptes
step2.cmd definiert hatten, angezeigt (Abbildung 43 und Abbildung 44).
28
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 43
Abbildung 44
29
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Wir müssen nun noch den Listener / das Empfangsprogramm definieren und starten. Wir öffnen die
MQSeries Services mit einem rechten Mausklick auf das MQSeries-Taskleistensymbol und einem
anschließenden Klick auf "WebSphere MQ-Services" (Abbildung 45).
Abbildung 45
Klicken Sie mit der rechten Maustaste auf Ihren Queue Manager. Wählen Sie dann Neu aus und
klicken Sie anschließend auf Empfangsprogramm (Abbildung 46).
Abbildung 46
In der Registerkarte "Parameter" muß das Protokoll TCP sowie der Port (Anschluss) 1414 eingestellt
sein. Öffnen Sie die Registerkarte „Allgemein“. Der Status ist „Gestoppt“ – Starten Sie (Abbildung 47) !
30
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 47
Der Status wechselt auf „Aktiv“. Verlassen Sie den Dialog mit Klick auf „OK“.
Alle Services des Queue Managers sind nun gestartet.
Wir starten nun den Sender Channel und wechseln dazu in den MQ Explorer zurück.
Überprüfen Sie noch einmal ihre IP-Einstellungen des Channels.
Wir klicken mit der rechten Maustaste auf den Sender Channel „PRAKT20.NACT.TO.MQA1“ und
wählen „Starten“ aus. Es erscheint eine Nachricht, dass die Anforderung angenommen wurde. Der
Sender Channel wechselt in den Aktiv-Status, dies ist zu erkennen an dem grünen Pfeil vor dem
Channel-Namen.
31
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 48
Damit haben wir den MQSeries-Klienten erfolgreich gestartet.
32
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
6.2
Starten und Aktivieren aller Objekte des MQSeries Queue Managers MQA1
auf OS/390-Seite
Die Eigenschaften der angelegten MQSeries-Objekte auf OS/390-Seite können vor einem Start bei
Bedarf noch geändert werden. Ein Objekt kann wie folgt beschrieben abgeändert werden:
Öffnen Sie das MQSeries Main Menu (Abbildung 49). Wählen Sie „1“ für Display, für den Object type
„CHANNEL“ und Name „MQA1∗“ und drücken Sie die Eingabetaste.
IBM MQSeries for OS/390 - Main Menu
Complete fields. Then press Enter.
Action . . . . . . . . 1
1.
2.
3.
4.
Display
Define
Alter
Delete
5. Perform
6. Start
7. Stop
Object type . . . . . CHANNEL
+
Name . . . . . . . . . MQA1*
Like . . . . . . . . . ________________________________________________
Connect to queue
manager . . . . . . : MQA1
Target queue manager : MQA1
Response wait time . : 30
seconds
(C) Copyright IBM Corporation 1993,1999. All rights reserved.
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F4=Prompt
F6=QueueMgr F9=Swap
F10=Messages F12=Cancel
Abbildung 49
33
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
List Channels
Row 1 of 3
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
6=Start
7=Stop
_
3
_
4=Delete
5=Perform
Name
Type
MQA1.TO.CSQ1
CHLSENDER
MQA1.TO.PRAKT20.NACT
CHLSENDER
MQA1.TO.PRAKT21.NACT
CHLSENDER
******** End of list ********
Status
INACTIVE
STOP
STOP
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F5=Refresh
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F11=Status
F12=Cancel
Abbildung 50
Geben Sie eine "3" vor Ihrem Sender Channel ein und bestätigen Sie mit der Eingabetaste.
Alter a Sender Channel
Complete fields, then press F8 for further fields, or Enter to alter channel.
More:
+
Channel name . . . . . . . : MQA1.TO.PRAKT20.NACT
Description . . . . . . . . .
Transport type
Connection name
LU6.2 mode name
LU6.2 TP name .
.
.
.
.
.
.
.
.
Transmission queue
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
T L=LU6.2,T=TCP/IP
139.18.4.54
________
________________________________
________________________________
. . . . . PRAKT20.NACT
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F11=Status
F12=Cance
Abbildung 51
Im sich öffnenden Panel können Sie noch einmal die eingestellte IP-Adresse überprüfen.
Bestätigen Sie mit der Eingabetaste. Die Ausschrift ' ALTER CHANNEL' NORMAL COMPLETION
besagt, dass die Änderung des Kanals problemlos abgeschlossen wurde.
Drücken Sie die F12-Taste (Cancel), um diesen Screen zu verlassen.
34
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Starten Sie nun den Sender Channel, indem Sie eine ”6” vor den Sender Channel Namen schreiben
und mit der Eingabetaste 2-mal bestätigen (Abbildung 52).
List Channels
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
6=Start
7=Stop
_
6
_
4=Delete
Row 1 of 3
5=Perform
Name
Type
MQA1.TO.CSQ1
CHLSENDER
MQA1.TO.PRAKT20.NACT
CHLSENDER
MQA1.TO.PRAKT21.NACT
CHLSENDER
******** End of list ********
Status
INACTIVE
STOP
STOP
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F5=Refresh
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F11=Status
F12=Cancel
Abbildung 52
Start a Channel
Press Enter to confirm that the channel is to be started.
Channel name . . . . . . . : MQA1.TO.PRAKT20.NACT
Channel type . . . . . . . : CHLSENDER
Description . . . . . . . :
CSQ9022I !MQA1 CSQXCRPS ' START CHANNEL' NORMAL COMPLETION
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F9=Swap
F10=Messages F12=Cancel
Abbildung 53
Alles verlief normal und fehlerfrei. Betätigen Sie die Taste F12 und einmal die F5-Taste, um das Panel
zu aktualisieren.
35
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Der Status des Channels wurde von "STOP" auf "RUN" verändert. Der Sender Channel ist nun
aktiviert.
List Channels
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
6=Start
7=Stop
_
_
_
4=Delete
Row 1 of 3
5=Perform
Name
Type
MQA1.TO.CSQ1
CHLSENDER
MQA1.TO.PRAKT20.NACT
CHLSENDER
MQA1.TO.PRAKT21.NACT
CHLSENDER
******** End of list ********
Status
INACTIVE
RUN
STOP
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F5=Refresh
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F11=Status
F12=Cancel
Abbildung 54
Damit sind die Queue Manager beidseitig miteinander verbunden.
Sie können sich davon noch einmal überzeugen, indem Sie, wie in der Abbildung 54 dargestellt, sich
den Status beider Kanäle ansehen. Beide Kanäle, der Sender MQA1.TO.PRAKT20.NACT sowie der
Empfänger PRAKT20.NACT.TO.MQA1 haben jetzt den Status RUN.
Diese Überprüfung läßt sich auch auf der Windows-Seite durchführen. Dazu sind die drei Kanäle im
MQ-Explorer anzuzeigen und zu aktualisieren. Beide Kanäle, der Sender und der Empfänger, haben
jetzt einen grünen Pfeil (Abbildung 55).
36
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 55
7 Starten der Java-Anwendung
Aufgabe: Greifen Sie über MQ und die Java-Anwendung auf Ihr eigenes Konto "100xx" oder "10xxx" zu. Haben
Sie beispielsweise den Account PRAK159, dann greifen Sie über MQ und die Java-Anwendung auf das
Konto "10159" zu, welches Sie ja selbst angelegt oder modifiziert haben.
Erzeugen Sie von diesem Vorgang die folgenden Nachweis-Screenshots:
1) entsprechend der Abbildung 60, der die Ausgabe der NACT-Transaktion enthält
2) entsprechend der Abbildung 56, der zeigt, dass alle Windows MQ-Kanäle aktiv sind
3) entsprechend der Abbildung 57
Alle diese Screenshots müssen natürlich statt der Accounts-Nr. "20" Ihre Account-Nr. nachweisen, und
Ihr Screenshot entsprechend der Abbildung 60 muss natürlich Ihren Vor- und Zunamen sowie alle
anderen Daten Ihres eigenen NACT-Kontos zeigen.
Achten Sie darauf, dass die Screenshots nicht zu viel Speicherplatz in Anspruch nehmen. Am besten ist
das JPEG-Format, das mit weniger als 90 KByte auskommt. Im Ausnahmefall ist auch das BitmapFormat (< 250 KByte) möglich.
Aufgabe: Schicken Sie alle sechs Screenshots ihrem Tutor per E-Mail zu. Und zwar soll jeder Screenshot
unverpackt als Anhang an die Mail angefügt werden.
37
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 56
Abbildung 57
Um die JAVA-Anwendung zu starten, muss die Datei starting.bat angepasst werden.
Passen Sie diese Datei nun wie folgt an:
java MQClient <<IP-Adresse des Win2k-Rechners>> <<ClientServerConnection>>
<<Queue Manager>> <<Remote Queue>> <<Reply-To-Queue>>
38
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Beispielsweise so:
java MQClient 139.18.4.54 PRAKT20.CLIENT PRAKT20.NACT PRAKT20.NACT.REMOTEQ
PRAKT20.NACT.REPLYQ
Der Editor kann nun geschlossen und die modifizierte Datei abgespeichert werden.
Die Java-Anwendung wird nun durch Doppelklick auf die gerade angepasste Datei starting.bat
gestartet.
Es erscheint der „KanDoIT Account Enquiry Client“ (Abbildung 58) . Das Java-Programm des Klienten
holt sich aus dem OS/390 CICS COMMAREA-Bereich eine Map. Dies ist die gleiche Information, wie
sie beim Aufruf der NACT-Transaktion mit BMS in CICS erzeugt wird; das Aussehen ist anders und
wird von dem Java-Programm auf dem Klienten gestaltet.
Abbildung 58
39
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Abbildung 59
Wir geben eine gültige Account-Nr. ein, dann die Maus auf das Eingabesymbol bewegen (es ändert
leicht seine Form) und mit der linken Maustaste klicken.
Abbildung 60
40
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Die in dem OS/390 VSAM-Dataset gespeicherten Daten werden wiedergegeben (s. Abbildung 60).
Im sich zum Start der Java-Anwendung geöffneten DOS-Fenster stehen ebenfalls diese Nachrichten
in der Rohform.
Wir schliessen die Java-Anwendung (Abbildung 61).
Abbildung 61
Jetzt müssen wir die Anwendung klientenseitig und serverseitig herunterfahren ( sehr wichtig !!! ).
41
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
8 Shutdown
8.1
Sender Channel auf OS/390 stoppen
IBM MQSeries for OS/390 - Main Menu
Complete fields. Then press Enter.
Action . . . . . . . . 1
1.
2.
3.
4.
Display
Define
Alter
Delete
5. Perform
6. Start
7. Stop
Object type . . . . . CHANNEL
+
Name . . . . . . . . . MQA1*
Like . . . . . . . . . ________________________________________________
Connect to queue
manager . . . . . . : MQA1
Target queue manager : MQA1
Response wait time . : 30
seconds
(C) Copyright IBM Corporation 1993,1999. All rights reserved.
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F4=Prompt
F6=QueueMgr F9=Swap
F10=Messages F12=Cancel
Abbildung 62
Betätigen Sie die Eingabetaste.
42
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
List Channels
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
6=Start
7=Stop
4=Delete
Row 1 of 3
5=Perform
Name
Type
_ MQA1.TO.CSQ1
CHLSENDER
7 MQA1.TO.PRAKT20.NACT
CHLSENDER
_ MQA1.TO.PRAKT21.NACT
CHLSENDER
******** End of list ********
Command ===>
F1=Help
F2=Split
F3=Exit
F9=Swap
F10=Messages F11=Status
F5=Refresh
F12=Cancel
F7=Bkwd
Status
INACTIVE
RUN
STOP
F8=Fwd
Abbildung 63
Geben Sie eine "7" (einschließlich Eingabetaste) vor dem Sender Channel Namen ein, um diesen zu
stoppen.
Stop a Channel
Select stop mode, then press Enter to stop channel.
Channel name . . . . . . . : MQA1.TO.PRAKT20.NACT
Channel type . . . . . . . : CHLSENDER
Description . . . . . . . :
Stop mode
. . . . . . . . . 1
1. Quiesce
2. Force
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F9=Swap
F10=Messages F12=Cancel
Abbildung 64
Hier ist eine "1"einzugeben (inclusive Eingabetaste).
43
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
Stop a Channel
Select stop mode, then press Enter to stop channel.
Channel name . . . . . . . : MQA1.TO.PRAKT20.NACT
Channel type . . . . . . . : CHLSENDER
Description . . . . . . . :
Stop mode
. . . . . . . . . 1
1. Quiesce
2. Force
CSQ9022I !MQA1 CSQXCRPS ' STOP CHANNEL' NORMAL COMPLETION
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F9=Swap
F10=Messages F12=Cancel
Abbildung 65
Damit ist das Herunterfahren auf der OS/390-Seite abgeschlossen.
Betätigen Sie die F12-Taste.
List Channels
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
6=Start
7=Stop
_
_
_
4=Delete
Row 1 of 3
5=Perform
Name
Type
MQA1.TO.CSQ1
CHLSENDER
MQA1.TO.PRAKT20.NACT
CHLSENDER
MQA1.TO.PRAKT21.NACT
CHLSENDER
******** End of list ********
Status
INACTIVE
STOP
STOP
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F5=Refresh
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F11=Status
F12=Cancel
Abbildung 66
Die F5-Taste bewirkt einen Refresh. Danach wird MQA1.TO.PRAKT21.NACT mit dem Status "Stop"
angezeigt (Abbildung 66). Der Sender Channel ist gestoppt.
Zur Bestätigung können wir uns die Kanäle im MQ Explorer nach dessen Aktualisierung ansehen. Hier
ist der grüne Pfeil vor "MQA1.TO.PRAKT20.NACT" nicht mehr vorhanden.
44
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
8.2
Sender Channel auf Windows stoppen
Wir klicken mit rechts auf den Sender Channel und wählen "Stoppen..." aus (Abbildung 67).
Abbildung 67
Der grüne Pfeil ändert sich in einen roten Pfeil.
Dass dieser Kanal nun gestoppt ist, können wir uns wieder auf der OS/390-Seite bestätigen lassen
(Abbildung 68). Der ehemalige Status RUN wurde auf INACTIVE geändert. Um die Channel-Liste zu
aktualisieren, muß eventuell noch die F5-Taste betätigt werden.
List Channels
Type action codes. Then press Enter.
1=Display
2=Define like
3=Alter
6=Start
7=Stop
_
_
4=Delete
Row 1 of 3
5=Perform
Name
Type
PRAKT20.NACT.TO.MQA1
CHLRECEIVER
PRAKT20.NACT.WIN.OS
CHLRECEIVER
******** End of list ********
Status
INACTIVE
INACTIVE
Command ===> __________________________________________________________________
F1=Help
F2=Split
F3=Exit
F5=Refresh
F7=Bkwd
F8=Fwd
F9=Swap
F10=Messages F11=Status
F12=Cancel
Abbildung 68
45
Tutorial 13 (OS/390 2.7) - v03-2006-07-21
8.3
Windows XP MQ Queue Manager herunterfahren
Queue Manager = PRAKT20.NACT wählen Rechtsklick und “Stoppen” (Abbildung 69) “Gesteuert” bestätigen.
Abbildung 69
Der Queue Manager ist nun gestoppt, erkennbar am roten Pfeil vor dem Queue Manager-Namen.
Wir schließen die OS/390-Sitzung, loggen uns aus dem S/390-Rechner aus.
Auf dem Windows-Rechner können nun die MQ-Services sowie der MQ-Explorer beendet werden.
46

Documents pareils