PDA

View Full Version : UDS und *dataara



ILEMax
07-01-16, 09:04
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

Fuerchau
07-01-16, 10:18
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

ILEMax
07-01-16, 14:00
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?

Fuerchau
07-01-16, 14:10
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.

ILEMax
07-01-16, 16:29
noch ne Frage ...
ich war immer sicher, das UDS den *LDA definiert

ist das so, wenn ich der UDS KEINEN Namen gebe?

Der ILEMax

Fuerchau
07-01-16, 17:14
Das bliebe mal auszuprobieren oder in der Doku nachzulesen.

Robi
08-01-16, 09:23
ja, UDS ohne DS Name ist der *LDA
Robi