Rational Developer for System z, Version 7.6

DFHWS-URI-Container

DFHWS-URI ist ein Container vom Typ DATATYPE(CHAR), der den URI des Service enthält.

CICS extrahiert in der Pipeline eines Service-Providers den relativen URI aus eingehenden Nachrichten und überträgt ihn in den DFHWS-URI-Container.

Wenn der URI des Web-Service beispielsweise http://example.com/location/address oder jms://queue?destination=INPUT.QUEUE&targetService=/location/address lautet, ist der relative URI /location/address.

Wenn Sie die Web-Service-Adressierung in Ihrer Provider-Pipeline verwenden, wird dieser Container erstellt und in folgender Reihenfolge aktualisiert:
  1. Wenn der Befehl INVOKE SERVICE ausgeführt wird, erstellt er den DFHWS-URI-Container und initialisiert diesen mit dem Wert der Endpunktadresse des WSDL-Service. Wurde der API-Befehl WSACONTEXT BUILD verwendet, um einen Adressierungskontext zu erstellen, muss der Parameter URI bzw. URIMAP für den Befehl INVOKE SERVICE nicht angegeben werden.
  2. Wenn der Web-Service-Adressierungshandler (DFHWSADH) ausgeführt wird und sofern eine Endpunktreferenz (EPR) <wsa:To> mit einem nicht anonymen URI im Adressierungskontext vorhanden ist, wird der URI im DFHWS-URI-Container mit dem Wert der Endpunktreferenz <wsa:To> überschrieben. Der anonyme URI wird ignoriert.

In einer Service-Requester-Pipeline überträgt CICS den für den Befehl INVOKE SERVICE angegebenen URI oder, wenn dieser fehlt, den URI aus der Web-Service-Bindung in den DFHWS-URI-Container. Sie können diesen URI überschreiben, indem Sie einen Nachrichtenhandler in der Pipeline verwenden.

Ein Service kann einen HTTP-, HTTPS-, JMS- oder WMQ-URI für externe Services verwenden. Außerdem kann ein Service einen CICS-URI für einen Service verwenden, der von einer anderen CICS-Anwendung bereitgestellt wird:

URI Abfragezeichenfolge Beschreibung
cics://PROGRAM/Programm ?Optionen Der CICS-Transporthandler verwendet einen Befehl der Form EXEC CICS LINK PROGRAM, um eine Verbindung mit dem angegebenen Programm herzustellen, und übergibt den aktuellen Channel sowie die aktuellen Container. Die Anwendungsdaten werden nicht konvertiert.
cics://SERVICE/Service ?targetServiceUri=Zielservice-URI&Optionen Der CICS-Transporthandler verwendet den Pfad des Service, der als Zielservice-URI angegeben wird, um eine URIMAP-Ressource zu erhalten und so die Anforderung über eine Provider-Pipeline ausführen zu können.

Sie müssen einen Wert für den Parameter targetServiceUri angeben, wenn Sie diesen URI-Typ verwenden.

cics://PIPELINE/Pipeline ?targetServiceUri=Zielservice-URI Der CICS-Transporthandler startet eine andere Service-Requester-Pipeline.

Sie können jedem Typ von CICS-URI Parameter im Format Parameter=Wert hinzufügen, wobei die einzelnen Parameter durch ein Et-Zeichen getrennt werden. Die folgenden Regeln gelten für den CICS-URI:

Die Parameter in der Abfragezeichenfolge bestimmen, wie CICS die Anforderung am Ende der Requester-Pipeline verarbeitet:

maxCommareaLength=Wert
Geben Sie die maximale Größe des Kommunikationsbereichs in Bytes an, die für das Zielanwendungsprogramm erforderlich ist. Der Wert darf 32763 nicht überschreiten. Wenn dieser Parameter in der Abfragezeichenfolge vorhanden ist, stellt CICS unter Verwendung des Kommunikationsbereichs eine Verbindung zu dem angegebenen Programm her. Ist der Parameter in der Abfragezeichenfolge nicht vorhanden, stellt CICS unter Verwendung eines Channels eine Verbindung zu dem angegebenen Programm her.
Bei diesem Parameter muss die Groß-/Kleinschreibung nicht beachtet werden. Der Parameter ist ausschließlich für den URI cics://PROGRAM zulässig.
newTask=yes|no
Geben Sie an, ob der Transporthandler die Anforderung als neue Task ausführen soll.
Bei diesem Parameter muss die Groß-/Kleinschreibung nicht beachtet werden. cics://PROGRAM/testapp?newTask=yes und cics://PROGRAM/testapp?NEWTASK=Yes sind gleichbedeutend.
targetServiceUri=URI
Geben Sie den Pfad des aufzurufenden Service an. Für ein Ziel vom Typ SERVICE verwendet der Transporthandler den Wert mit host=localhost, um die URIMAP-Ressource zum Starten einer Service-Provider-Pipeline zu suchen. Für ein Ziel vom Typ PIPELINE verwendet der Transporthandler den Wert, um eine weitere Requester-Pipeline zu starten.
Bei diesem Parameter muss die Groß-/Kleinschreibung beachtet werden.
transid=char(4)
Geben Sie eine Transaktion an, unter der die Anforderung ausgeführt werden soll. Der Transporthandler startet unter Verwendung der angegebenen Transaktions-ID einen Anforderungsdatenstrom.
Bei diesem Parameter muss die Groß-/Kleinschreibung beachtet werden.
userid=char(8)
Geben Sie eine Benutzer-ID an, unter der die Anforderung ausgeführt werden soll. Der Transporthandler startet unter Verwendung der angegebenen Benutzer-ID einen Anforderungsdatenstrom.
Bei diesem Parameter muss die Groß-/Kleinschreibung nicht beachtet werden.
Zieltyp Parameter für URI
PROGRAM userid Optional
transid Optional
maxCommareaLength Optional
newTask Optional. Es muss 'yes' oder, sofern der Parameter userid oder transid angegeben wird, gar nichts angegeben werden.
targetServiceUri Nicht unterstützt
SERVICE userid Optional
transid Optional
maxCommareaLength Nicht unterstützt
newTask Optional. Es muss 'yes' oder, sofern der Parameter userid oder transid angegeben wird, gar nichts angegeben werden.
targetServiceUri Erforderlich
PIPELINE userid Nicht unterstützt
transid Nicht unterstützt
maxCommareaLength Nicht unterstützt
newTask Nicht unterstützt
targetServiceUri Erforderlich

Beispiele für CICS-URIs

In diesem ersten Beispiel enthält der DFHWS-URI-Container den folgenden URI, wenn er das Ende der Pipeline erreicht:
cics://PROGRAM/testapp?newTask=yes&userid=user1
Der Transporthandler stellt eine Verbindung zu dem CICS-Programm mit dem Namen "testapp" her und übergibt den Channel und die Container. Es findet keine Datenkonvertierung statt, daher muss das Zielprogramm in der Lage sein, den Inhalt der Container im aktuellen Channel zu verarbeiten. CICS stellt unter einer neuen UOW und der anderen Benutzer-ID 'user1' eine Verbindung zu dem Programm her.

In diesem zweiten Beispiel enthält der DFHWS-URI-Container den folgenden URI, wenn er das Ende der Pipeline erreicht:

cics://SERVICE/getStockQuote?targetServiceUri=/stock/getQuote&newTask=yes&userid=user2

Der Transporthandler ersetzt den URI im DFHWS-URI-Container durch den Wert /stock/getQuote, ermittelt die URIMAP mithilfe des Pfads im Parameter targetServiceUri, um den URI aufzulösen, und startet die Provider-Pipeline als neue Task und unter einer anderen Benutzer-ID.

In diesem dritten Beispiel enthält der DFHWS-URI-Container den folgenden URI, wenn er das Ende der Pipeline erreicht:

cics://PIPELINE/reqpipeA?targetServiceUri=cics://PROGRAM/testapp?newTask=yes%26userid=user1 
Der Transporthandler ersetzt den URI im DFHWS-URI-Container durch den Wert cics://PROGRAM/testapp?newTask=yes&userid=user1, startet die Requester-Pipeline mit dem Namen "reqpipeA" und übergibt den aktuellen Channel und die Container. Die Zeichen %26 stellen die Escapezeichen für das Et-Zeichen dar, sodass der Transporthandler den gesamten URI in den DFHWS-URI-Container übertragen kann.

Nutzungsbedingungen | Feedback

Dieses Information Center basiert auf Eclipse-Technologie. (http://www.eclipse.org)