Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

PTDA Schreiben in einen TLS

Mit dem Aufruf PTDA (put data) schreiben Sie einen Block aus einem angegebenen Speicherbereich in einen Terminal-spezifischen Langzeitspeicher (TLS) eines LTERM/LPAP/OSI-LPAP/Master-LPAP-Partners.

Ein Teilprogrammlauf eines Dialog-Vorgangs kann nur Blöcke des "eigenen" TLS schreiben, d.h. Blöcke des LTERM/LPAP/OSI-LPAP-Partners, über den der Vorgang gestartet wurde.

Ein Teilprogrammlauf eines Asynchron-Vorgangs kann die Blöcke jedes  LTERM/LPAP/OSI-LPAP/Master-LPAP-Partners der UTM-Anwendung beschreiben.

Versorgen des 1. Parameters (KDCS-Parameterbereich)

Die folgende Tabelle zeigt die verschiedenen Möglichkeiten und die dafür notwendigen Angaben im KDCS-Parameterbereich.

Funktion des Aufrufs

Einträge im KDCS-Parameterbereich

KCOP

KCLA

KCRN

KCLT

Schreiben in einen TLS-Block (im Dialog-Programm)

"PTDA"

Länge

Blockname

Schreiben in einen TLS-Block (im Asynchron-Programm)

"PTDA"

Länge

Blockname

 LTERM/LPAP/OSI-LPAP/Master-LPAP-Name

Versorgen des 2. Parameters

Hier stellen Sie die Adresse des Nachrichtenbereichs bereit, der die zu schreibende Nachricht enthält.

Versorgen der Parameter

Feldname im KDCS-Parameterbereich

Inhalt

KCOP

"PTDA"

KCLA

Länge in Byte

KCRN

Blockname

KCLT

Name des  LTERM/LPAP/OSI-LPAP/Master-LPAP-Partners

Nachrichtenbereich



Daten

KDCS-Aufruf

1. Parameter

2. Parameter

KDCS-Parameterbereich

Nachrichtenbereich

C/C++-Makroaufruf

Makronamen

Parameter

KDCS_PTDA

(nb,kcla,kcrn,kclt)

Rückgaben von openUTM

Feldname im KB-Rückgabebereich

Inhalt

KCRCCC

Returncode

KCRCDC

interner Returncode

In den KDCS-Parameterbereich tragen Sie für den PTDA-Aufruf ein:

KCOP

im Feld KCOP den Operationscode "PTDA".

KCLA

im Feld KCLA die Länge, in der openUTM die Daten in den TLS schreiben soll. Die hier angegebene Länge wird zur neuen Länge des TLS-Blocks.

KCRN

im Feld KCRN den Namen des TLS-Blocks, in den openUTM die Daten schreiben soll.

KCLT

nur bei Asynchron-Programmen:
im Feld KCLT den Namen des  LTERM/LPAP/OSI-LPAP/Master-LPAP-Partners, in dessen TLS openUTM schreiben soll (von Dialog-Programmen wird dieses Feld nicht ausgewertet).

Nachrichtenbereich

Im Nachrichtenbereich tragen Sie die Nachricht ein, die Sie in den TLS schreiben wollen.

Beim KDCS-Aufruf geben Sie an:

1. Parameter

als 1. Parameter: die Adresse des KDCS-Parameterbereichs.

2. Parameter

als 2. Parameter: die Adresse des Nachrichtenbereichs, aus dem openUTM die Nachricht lesen soll. Die Adresse des Nachrichtenbereichs geben Sie auch an, wenn Sie in KCLA die Länge 0 eintragen.

Makronamen

Wie Sie Makroaufrufe für C/C++ nutzen, ist in Abschnitt „C/C++-Makroschnittstelle" ausführlich beschrieben.

openUTM gibt zurück:

KCRCCC

im Feld KCRCCC den KDCS-Returncode, siehe unten.

KCRCDC

im Feld KCRCDC den internen Returncode von openUTM (siehe openUTM-Handbuch „Meldungen, Test und Diagnose“).

KDCS-Returncodes im Feld KCRCCC beim PTDA-Aufruf

Im Programm sind auswertbar:

000

Die Operation wurde ausgeführt.

40Z

Das System kann die Operation nicht ausführen (Generierungs- bzw. Systemfehler, Deadlock, Timeout), siehe KCRCDC.

41Z

Der Aufruf wurde im ersten Teil des Anmelde-Vorgangs gegeben, obwohl dies in der Generierung nicht erlaubt wurde.

43Z

Die Längenangabe in KCLA ist negativ bzw. ungültig.

44Z

Der Name des Blocks in KCRN ist unbekannt oder ungültig.

46Z

Der  LTERM/LPAP/OSI-LPAP/Master-LPAP-Name in KCLT ist ungültig (nur bei Asynchron-Programmen).

47Z

Der Nachrichtenbereich fehlt oder ist in der angegebenen Länge nicht zugreifbar.

Ein weiterer Returncode ist dem DUMP zu entnehmen:

71Z

In diesem Programm wurde kein INIT gegeben.

Eigenschaften des PTDA-Aufrufs

  • Bei Transaktionsende (PEND RE/FI/FC/SP) wird die Änderung des TLS-Blocks durchgeführt und der Block entsperrt. Andere Transaktionen können ihn dann wieder verwenden.
    Bei PEND RS/ER/FR oder RSET werden die Änderungen der TLS-Blöcke rückgängig gemacht und die Blöcke entsperrt.

  • Die Sperre wird über evtl. über einen längeren Zeitraum hinaus beibehalten bei

    • PEND KP und PGWT KP

    • PEND PA/PR mit Taskwechsel wegen TAC-Klassensteuerung

    • PEND PA/PR mit Warten auf eine DGET-Nachricht.

  • Ein PTDA-Aufruf sperrt den Zugriff auf einen TLS-Block bis zum nächsten Sicherungspunkt. Alle anderen TLS-Blöcke des angesprochenen LTERM-/ LPAP- oder OSI-LPAP-Partners sind nicht gesperrt.

Beachten Sie, dass ein TLS-Block aktuell in der Länge existiert, in der er beim letzten PTDA-Aufruf geschrieben wurde.

Wie openUTM reagiert, wenn der gewünschte TLS-Block gesperrt ist, ist in Abschnitt „Verhalten bei gesperrten Speicherbereichen (TLS, ULS und GSSB)" beschrieben.