Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiel 3: Vermeidung von Kollisionen

&pagelevel(4)&pagelevel

Sie möchten möglichst viel nach vorne verlagern. Irgendwann wird die Datenbank aber abgeschaltet. Dann soll sich die UDS-Online-Utility sofort beenden. Der Realm hat 10000 Seiten. Bei Hinweisen auf Kollisionen (hier: mehr als 5) soll sich die UDS-Online-Utility ebenfalls beenden. Normalerweise werden in einer Transaktion drei Seiten geleert.

//SET-ONLINE-UTILITY-PARAMETERS -
// DBH=*INDEPENDENT, -
// CONFIGURATION-NAME=SESSION3
//SET-RELOCATE-PARAMETERS -
// SUBSCHEMA-NAME=SUB3, -
// REALM-NAME=AREA3, -
// PAGES-PER-DML=3
//DECLARE-VARIABLE -
// VARIABLE-NAME=NRCLASHS, -
// TYPE=*INTEGER, -
// INITIAL-VALUE=0
//DECLARE-PROCEDURE -
// PROCEDURE-NAME=TA3, -
// CODE=*SYSDTA
/SEND-DATA -
/ RECORD=’READY UPDATE;RELOCATE;’
/SEND-DATA -
/ RECORD=’EXIT COND=STATUSCODE EQ 010’
/SEND-DATA -
/ RECORD=’ADD NRCLASHS,1,COND=RELOC-FREED-PAGES LT 3;FINISH’
/SEND-DATA -
/ RECORD=’EXIT COND=NRCLASHS GE 5’
/SEND-DATA RECORD=*EOF
//REPEAT-PROCEDURE -
// PROCEDURE-NAME=TA3, -
// CYCLE-LIMIT=10000
//SHOW-VARIABLE RELOC-ORIGIN
//SHOW-VARIABLE RELOC-DESTINATION

Alternativ können Sie die DMLs der Prozedur TA3 über SYSDTA auch direkt eingeben. Wesentlich ist dabei, dass die Prozedureingabe mit END abgeschlossen wird.

//...
//DECLARE-PROCEDURE -
// PROCEDURE-NAME=TA3, -
// CODE=*SYSDTA
READY UPDATE;RELOCATE;
EXIT COND=STATUSCODE EQ 010
ADD NRCLASHS,1,COND=RELOC-FREED-PAGES LT 3;FINISH
EXIT COND=NRCLASHS GE 5;END
//REPEAT-PROCEDURE -
// PROCEDURE-NAME=TA3, -
// CYCLE-LIMIT=10000
//...