View Full Version : UDS und *dataara
Moin zusammen
gibt es einen Unterschied zwischen
D UDS LDA
und
D DS LDA
C *DTAARA DEFINE *LDA LDA
C IN *DTAARA
bei uns taucht ab und zu eine Dataara in qtemp auf, die LDA heist
Der ILEMAX
UDS LDA definiert eine DTAARA mit dem Namen LDA, das ist die sporadische.
Erst mit dem "DEFINE *LDA" wird die UDS LDA auf die tatsächliche *LDA des Jobs umdefiniert.
Fehlt diese Umdefinition, legt RPG-Runtime eine DTAARA LDA an.
Die 2. Definition wundert mich da schon, normal wäre:
D LDA DS
C *DTAARA DEFINE *LDA LDA
C IN LDA
Das heist für den *LDA ist es völlig wumpe ob ich
DS oder
UDS schreibe,
wichtig ist
*DTAARA DEFINE *LDA LDA
bei UDS brauche ich KEIN IN
Bei DS muß ich ein IN haben?
Ja das ist korrekt.
Aber bei UDS wird der Inhalt nur beim 1. Aufruf gelesen, also noch vor der *INZSR.
Beendest du dein Programm mit *INLR = *OFF, wird die DS beim nächsten Aufruf nicht aktualisiert.
Anderseits wird eine UDS beim Beenden des Programmes mit *INLR = *ON wieder zurückgeschrieben!
Dies kann je nach Programmablauf gerade unerwünscht sein.
UDS mit der *LDA würde ich da nicht empfehlen, da die *LDA gerne als Programmkommunikation verwendet wird.
UDS mit benannter DTAARA kann man so machen aber irgendwie stammt das noch aus /36-Zeiten.
Die Beste Kontrolle bei benannter DTAARA ist eine DS, *DTAARA-Definition, sowie LOCK/IN/OUT/UNLCK-Befehle damit kein konkurrierender Update möglich ist.
Eine automatische UDS lässt sich nämlich nicht mit "Monitor" überwachen.
noch ne Frage ...
ich war immer sicher, das UDS den *LDA definiert
ist das so, wenn ich der UDS KEINEN Namen gebe?
Der ILEMax
Das bliebe mal auszuprobieren oder in der Doku nachzulesen.
ja, UDS ohne DS Name ist der *LDA
Robi