Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Sperren von Units Dokument im Navigationsbaum lokalisieren

Verwendung

Sperren von Units

 

Voraussetzungen

Das Setzen einer Unit-Sperre auf eine noch nicht mit COMMIT WORK freigegebene Hintergrund-Unit geschieht zusammen mit dem Wegschreiben der Hintergrund-Unit und ist somit unkritisch bezüglich des Datenbank-Commits. Das nachträgliche Setzen einer Unit-Sperre auf eine bereits mit COMMIT WORK freigegebene Hintergrund-Unit ist nicht erlaubt und muss demzufolge ebenfalls nicht betrachtet werden

 

Vorgehensweise

Damit eine Queue gesperrt bzw. eine Queue- oder Unit-Sperre aufgehoben werden kann, müssen die entsprechenden Informationen auf der Datenbank geändert werden. Dies geschieht zum Zeitpunkt COMMIT WORK. Damit erhalten wir ein einheitliches Verhalten bei allen t/qRFC Funktionen. Sie wirken alle beim COMMIT WORK. Die Sperre steht vor der ersten Unit, die zum Zeitpunkt COMMIT WORK in die Datenbank geschrieben wird.

Die Nachteile sind:

·         Da eine Anwendungs-LUW relativ lang sein kann, ist das Löschen / Setzen von Sperren eine sehr träge Operation.

·         Die COMMIT WORK Kontrolle ist in vielen Fällen nicht vorhanden, so daß untergeordnete Dienste keine Möglichkeit zum zeitnahen Löschen / Setzen von Sperren haben.

 

Ergebnis

Das Sperren einer einzelnen Unit erfolgt über einen Eintrag in der Tabelle QRFC_O_UNIT_LOCK. Pro Unit können mehrere Sperren zusammen mit deren Begründung hinterlegt werden. Für jeden Sperreintrag wird in der Tabelle QRFC_O_UNIT das Attribut PRED_CNT um 1 erhöht. Wird eine Sperre gelöscht, wird auch PRED_CNT angepasst. Aus diesem Grund kann eine Unit niemals in die Tabelle BGRFC_O_RUNNABLE gestellt werden, wenn mindestens eine Sperre hinterlegt wurde. Führt das entfernen aller Sperren dazu, dass PRED_CNT den Wert Null erreicht, dann wird die Unit in die Tabelle BGRFC_O_RUNNABLE gestellt.

Eine Unit, die bereits in der Tabelle BGRFC_O_RUNNABLE steht, kann nachträglich gesperrt werden, solange diese noch nicht von einem Outbound-Scheduler bearbeitet wird. Dabei wird der Eintrag aus der Tabelle BGRFC_O_RUNNABLE wieder entfernt

 

BeispielGrafik: Sperren und Entsperren von Units

Diese Grafik wird im zugehörigen Text erklärt

 

Eine Unit-Sperre kann sowohl manuell als auch automatisch erfolgen. Die unten aufgeführte Tabelle gibt die möglichen Gründe für die Sperrung einer Unit an.

REASON

Autom.

Beschreibung

UPD_PENDING

X

Unit ist abhängig von der Verarbeitung von Verbuchungssätzen

UPD_ERROR

X

Abhängige Verbuchungssätze sind fehlerhaft

ADMIN

 

Manuelle Sperre

PERM_ERROR

X

Server meldet permanente Fehler für diese Unit

 

 

Ende des Inhaltsbereichs