Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Arbeitsweise des linked-in DBH

&pagelevel(3)&pagelevel

Der linked-in DBH ist kein selbstständiges Programm; seine Module werden zum Daten-bank-Anwenderprogramm geladen und laufen als Teil dieses Programms.

Der linked-in DBH ist multi-DB-fähig; ein Anwenderprogramm, das mit dem linked-in DBH arbeitet, kann also auf mehrere Datenbanken gleichzeitig zugreifen. Das Programm belegt diese Datenbanken exklusiv, d.h. kein anderes Programm kann gleichzeitig mit ihnen arbeiten, es sei denn der DBH eröffnet sie nur lesend (SHARED-RETRIEVAL).


Bild 6: Der linked-in DBH

In das Anwenderprogramm müssen Sie ein spezielles Verbindungsmodul mit einbinden (UDSLNKL oder UDSLNKA, siehe Handbuch „Anwendungen programmieren“, Abschnitt UDS/SQL-TIAM-Anwendungen binden, laden und starten). Dieses sorgt beim Starten des Anwenderprogramms dafür, dass der dynamische Bindelader DBL die Module des linkedin DBH nachlädt. Gearbeitet wird, wie beim independent DBH, nicht direkt auf der Datenbank, sondern in den Buffer Pools des DBH-Arbeitsbereichs, der den Buffer Pools im Common Pool des independent DBH entspricht.
Dieser Arbeitsbereich liegt beim linked-in DBH allerdings nicht in einem von mehreren Prozessen gemeinsam benutzbaren Speicherbereich (Common Memory), sondern im Speicherbereich des zugehörigen Prozesses.

Im Folgenden wird am Beispiel eines COBOL-Programms die Bearbeitung einer DML-Anweisung durch den linked-in DBH kurz dargestellt. Das folgende Bild soll den Ablauf verdeutlichen:


Bild 7: Abwicklung einer COBOL-DML-Anweisung durch den linked-in DBH

  1. Das Subschemamodul enthält den Satzbereich, der gleichzeitig Teil des BASE INTERFACE BLOCK (BIB) ist. Der Satzbereich ist über die SUBSCHEMA SECTION durch das Anwenderprogramm adressierbar.

    Das DB-Anwendermodul überträgt die zur jeweiligen DML-Anweisung gehörenden Daten in den Satzbereich des BIB.
    Das COBOL-Laufzeitsystem setzt in den Parameterbereich des BIB die zur Bearbeitung des DML-Aufrufs notwendigen Angaben ein und übergibt die Adresse des BIB an das Verbindungsmodul.

  2. Das Verbindungsmodul ruft die Verarbeitungsmodule des linked-in DBH auf und übergibt die Adresse des BIB.

  3. Der DBH bearbeitet den DML-Aufruf, d.h.

    • soll die DML-Anweisung Daten aus der Datenbank lesen, so versorgt der DBH den BIB mit den entsprechenden Daten. Dazu greift der DBH auf die Buffer Pools zu und sucht dort die entsprechende Datenbankseite. Befindet sich diese noch nicht in den Buffer Pools, so liest der DBH sie aus der Datenbank ein.

    • soll die DML-Anweisung Daten in die Datenbank schreiben, so schreibt der DBH die Daten aus dem BIB in die entsprechende Datenbankseite in den Buffer Pools. Befindet sich die noch nicht in den Buffer Pools, so liest der DBH sie aus der Datenbank ein.

  4. Hat der DBH den DML-Aufruf fertig bearbeitet, so gibt er die Steuerung an das Anwenderprogramm zurück.