Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Sperren und Entsperren von Units über Queues Dokument im Navigationsbaum lokalisieren

Verwendung

Das Sperren und Entsperren von Units findet immer erst zum Zeitpunkt COMMIT WORK statt.

 

Vorgehensweise

Mit Hilfe der Klassen CL_QRFC_LOCK_INBOUND und CL_QRFC_LOCK_OUTBOUND kann die Ausführung von Units über eine Queue-Sperre verhindert werden bzw. eine Queue-Sperre zurückgenommen werden.

BeispielGrafik: Lock-Methoden

Diese Grafik wird im zugehörigen Text erklärt

 

 

Ergebnis

Die Methode LOCK_QUEUE_FROM_TOP sperrt die erste Unit am Anfang der angegeben Queue für eine Destination. Damit ist es möglich, einen Queue nachträglich zu sperren. Wenn keine Unit vorhanden ist, wird automatisch eine leere Unit erzeugt, um die Sperre abzubilden.

Die Methode LOCK_QUEUE_FROM_CURRENT_POS sperrt die Ausführung der nächsten Unit, die in die angegebene Queue für eine Destination geschrieben wird. Damit ist es möglich, eine Queue präventiv zu Sperren. Es wird eine leere Unit erzeugt, um die Sperre abzubilden.

Alle Queue-Sperren werden erst beim nächsten COMMIT WORK aktiv. Sollten innerhalb einer Anwendungs-LUW sowohl Unit-Spperren als auch Queue-Sperren erzeugt werden, so werden immer zuerst die Queue-Sperren gesetzt und dann die Unit-Sperren den entsprechenden Queues zugeordnet. Dazu betrachte man das folgende Beispiel:

Beispiel

Operation auf der Queue

Inhalt der Queue

Erzeugung der Unit 1

 

Erzeugung der Unit 2

 

COMMIT WORK

Unit 1 – Unit 2

Erzeugung der Unit 3

 

Setzen der Sperre A an die aktuelle Position

 

COMMIT WORK

Unit 1 – Unit 2 – Sperre A – Unit 3

Setzen der Sperre B an den Anfang

 

Verarbeitung der Unit 1 durch den Scheduler

Unit 2 – Sperre A – Unit 3

COMMIT WORK

Sperre B – Unit 2 – Sperre A – Unit 3

 

Ende des Inhaltsbereichs