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.
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:
| 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 | |
cics://PROGRAM/testapp?newTask=yes&userid=user1Der 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=user1Der 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.