Hinweise zur Anweisung 'get' bei GSAM und IMS-Nachrichtenwarteschlangen
Für serielle Dateien, die als GSAM-Dateien oder als IMS-Nachrichtenwarteschlange implementiert sind, gelten besondere Hinweise.
Für GSAM-Dateien (generalisierte sequenzielle Zugriffsmethode) in
IMS BMP- und z/OS Batch-Umgebung gelten die folgenden besonderen Hinweise:
- 'get next' ist das einzige Format der Anweisung 'get', das mit GSAM verwendet werden kann.
- Ein einzelnes Programm kann keine Kombination aus 'add'- und 'get next'-Anweisungen für dieselbe GSAM-Datei einschließen.
- Eine Anweisung 'get next' für einen seriellen Datensatz, der einer GSAM-Datei zugeordnet ist, resultiert in einem Aufruf GN an die GSAM-Datenbank.
- Wenn Sie einen seriellen Datensatz variabler Länger aus einer Datei lesen, die mit GSAM zugeordnet ist, und wenn die Länge des Datensatzes die Länge der physischen Datei überschreitet, gibt DL/I einen leeren Statuscode zurück. Die Daten werden abgeschnitten, ohne dass eine Nachricht ausgegeben wird, da die Situation nicht erkannt werden kann.
Für serielle Dateien, die einer IMS-Nachrichtenwarteschlange in
IMS BMP- oder z/OS Batch-Umgebungen zugeordnet sind, gelten die folgenden
besonderen Hinweise:
- 'get next' ist das einzige Format der Anweisung 'get', das mit IMS-Nachrichtenwarteschlangen verwendet werden kann.
- Ein einzelnes Programm kann keine Kombination aus 'add'- und 'get next'-Anweisungen für dieselbe IMS-Nachrichtenwarteschlange einschließen.
- Um die Anweisung 'get next' für eine serielle Datei, die einer IMS-Nachrichtenwarteschlange zugeordnet ist, verwenden zu können, müssen Sie die serielle Datei einem Eingabe-/Ausgabe-PCB (Programmkommunikationsblock) zuordnen.
- Die Anweisung 'get next' wird nicht für textUI-Programme unterstützt und auch nicht für Basisprogramme, die über ein textUI-Programm aufgerufen werden. Basisprogramme können nur eine einzige serielle Eingabedatei für den Eingabe-/Ausgabe-PCB zuordnen. EGL entfernt automatisch den IMS-Nachrichtenheader (Länge, ZZ-Feld und Transaktionscode) aus der Nachricht, bevor die Daten in den seriellen Datensatz verschoben werden.
- Eine Anweisung 'get next' für einen seriellen Datensatz, der einer aus einem einzigen Segment bestehenden Nachrichtenwarteschlange zugeordnet ist, resultiert in einem Aufruf GU an den Eingabe-/Ausgabe-PCB. Dieser Aufruf GU resultiert in einem automatischen Festschreibungspunkt (Commitpunkt).
- Die erste Anweisung 'get next' für einen seriellen Datensatz, der einer aus mehreren Segmenten bestehenden Nachrichtenwarteschlange zugeordnet ist, resultiert in einem Aufruf GU an den Eingabe-/Ausgabe-PCB. Nachfolgende get next-Anweisungen resultieren in GN-Aufrufen, bis eine Bedingung vom Typ 'noRecordFound' (Statuscode QD) festgestellt wird. Die erste Anweisung 'get next' nach der Bedingung 'noRecordFound' resultiert in einem weiteren Aufruf GU, und diese Verarbeitung wird so lange fortgesetzt, bis eine Bedingung vom Typ 'endOfFile' (Statuscode QC) festgestellt wird. Jeder Aufruf GU resultiert in einem automatischen Festschreibungspunkt.
- Während einer speziellen Terminierung eines Basisprogramms kann das Programm die Anweisung 'get next' jeweils nur für eine einzige Nachrichtenwarteschlange verwenden. Der Transaktionscode, für den IMS das Programm terminiert hat, legt fest, welche Nachrichtenwarteschlange gelesen wird. Die bei Generierung angegebene Systemressource wird ignoriert.