Dieses Beispiel skizziert eine Multi-DB-Konfiguration, in der ein Anwenderprogramm AP2 über einen UDS/SQL-DBH auf die Datenbanken KUNDEN und VERSAND zugreift.
Das Anwenderprogramm AP2 enthält zwei Module MODUL1 und MODUL2, die Database-Key-Werte austauschen über ein global definiertes COBOL-Feld DBK vom Datentyp USAGE IS DATABASE-KEY. MODUL1 greift auf die Datenbank KUNDEN zu, MODUL2 greift auf die Datenbank VERSAND zu (siehe Bild 40):
MODUL1 ermittelt mit der DML-Anweisung ACCEPT in der Datenbank KUNDEN den Database-Key-Wert des CRR der Satzart KUNDE und speichert diesen Wert in einem global definierten COBOL-Feld DBK vom Typ USAGE IS DATABASE-KEY:
ACCEPT DBK FROM KUNDE CURRENCY
Die Satzart KUNDE ist definiert im Schema KUNDENDATEI der Datenbank KUNDEN. Außerdem ist die Satzart KUNDE in einem Subschema von KUNDENDATEI enthalten, das von MODUL2 verwendet wird (Übernahme mit COPY KUNDE in der Subschema-DDL).
MODUL2 versorgt im Satzbereich der UWA (User Work Area) für die Datenbank VERSAND das Feld KUNDEN-NR der Satzart KUNDE mit dem im COBOL-Feld DBK gespeicherten Database-Key-Wert:
SET KUNDEN-NR TO DBK
Die Satzart KUNDE ist definiert im Schema ARTIKELVERSAND der 2-Kbyte-Datenbank VERSAND, das Feld KUNDEN-NR hat den Datentyp DATABASE-KEY. Außerdem ist die Satzart KUNDE in einem Subschema von ARTIKELVERSAND enthalten, das von MODUL2 verwendet wird (Übernahme mit COPY KUNDE in der Subschema-DDL).
Nachdem auch die restlichen Felder des KUNDE-Satzes in der UWA von MODUL2 mit Werten versorgt sind, überträgt MODUL2 diesen Satz in die Datenbank VERSAND.
STORE KUNDE [...]
Da in der Schema-DDL für die 2-Kbyte-Datenbank VERSAND der Eintrag für die Satzart KUNDE die Klausel LOCATION MODE IS DIRECT KUNDEN-NR OF KUNDE enthält, ist der im Feld KUNDEN-NR abgelegte Wert gleichzeitig der Database-Key-Wert des abgespeicherten Satzes.
Bild 40: Datenbankübergreifende Nutzung von Database-Key-Werten durch ein Anwenderprogramm
Sowohl zur Satzart KUNDE im Schema KUNDENDATEI der 2-Kbyte-Datenbank KUNDEN als auch zur Satzart KUNDE im Schema ARTIKELVERSAND der 2-Kbyte-Datenbank VERSAND können zunächst nur maximal 16 777
215 (=224-1) Sätze gespeichert werden.
Zur Satzart KUNDE im Schema KUNDENDATEI der Datenbank KUNDEN soll es künftig mehr als 16 777 215 Sätze geben. Andere Kapazitätsengpässe treten in der Datenbank KUNDEN nicht auf.
Die Datenbanken KUNDEN und VERSAND können Sie unabhängig voneinander umstellen und anpassen. Es empfiehlt sich folgende Reihenfolge:
Datenbank VERSAND umstellen und umstrukturieren
Mit dem Dienstprogramm BPGSIZE stellen Sie die 2-Kbyte-Datenbank VERSAND auf das 4-Kbyte_Format um. Die Umstellung ist notwendig, da künftig Database-Key-Wer-te mit einer RSQ > 224-1 aus der Datenbank KUNDEN in die Satzart KUNDE der Datenbank VERSAND übertragen werden.
Anschließend erklären Sie die umgestellte Datenbank zum Original.Sie bereiten die Datenbank VERSAND für den Datenbankbetrieb vor. Insbesondere erweitern Sie mit dem Dienstprogramm BREORG im Schema ARTIKELVERSAND das Mengengerüst für die Satzart KUNDE auf den benötigten Wert.
Zur Satzart KUNDE des Schemas ARTIKELVERSAND können nun mehr als 224-1 Sätze in der Datenbank VERSAND abgespeichert werden.Sie strukturieren die Datenbank VERSAND um:
Im Satzeintrag der Satzart KUNDE im Schema ARTIKELVERSAND ändern Sie die Klausel LOCATION MODE IS DIRECT KUNDEN-NR OF KUNDE in LOCATION MODE IS DIRECT-LONG KUNDEN-NR OF KUNDE. Den Datentyp des Feldes KUNDEN-NR ändern Sie in den Datentyp DATABASE-KEY-LONG.
Das von MODUL2 benötigte Subschema müssen Sie nicht ändern, da es die Satzart KUNDE aus dem SCHEMA ARTIKELVERSAND mit COPY übernimmt. Das Subschema muss nur neu übersetzt werden. Außerdem müssen alle Anwenderprogramme, die dieses Subschema verwenden, neu übersetzt und gebunden werden.
Die weiteren Umstrukturierungsmaßnahmen führen Sie durch gemäß dem Kapitel „Datenbank umstrukturieren (BCHANGE, BALTER)".
Datenbank KUNDEN umstellen
Mit dem Dienstprogramm BPGSIZE stellen Sie die 2-Kbyte-Datenbank KUNDEN auf das 4-Kbyte-Format um. Anschließend erklären Sie die umgestellte Datenbank zum Original.
Sie bereiten die Datenbank KUNDEN für den Datenbankbetrieb vor. Insbesondere erweitern Sie mit dem Dienstprogramm BREORG im Schema KUNDENDATEI das Mengengerüst für die Satzart KUNDE auf den benötigten Wert.
Zur Satzart KUNDE des Schemas KUNDENDATEI können nun mehr als 224-1 Sätze in der Datenbank KUNDEN abgespeichert werden.Im Schema KUNDENDATEI der Datenbank KUNDEN sind keine Änderungen erforderlich, die Datenbank KUNDEN muss also nicht umstrukturiert werden.
Anwenderprogramm AWP2 anpassen
Im Anwenderprogramm AWP2 muss die Deklaration des COBOL-Feldes DBK geändert werden in den Datentyp USAGE IS DATABASE-KEY-LONG. Dabei sind ggf. auch Redefinitionen des Feldes DBK zu berücksichtigen. Das Anwenderprogramm AWP2 muss neu übersetzt und gebunden werden.
Alternative Vorgehensweise: zeitlich entkoppelt umstellen und umstrukturieren
Alternativ zum oben geschilderten Vorgehen können Sie die Umstellung der Datenbanken mit BPGSIZE und die Umstrukturierung jeweils zeitlich entkoppelt durchführen, z.B.:
Datenbank VERSAND mit BPGSIZE umstellen; zunächst nicht umstrukturieren
Datenbank KUNDEN mit BPGSIZE umstellen; zunächst nicht umstrukturieren
Datenbank VERSAND umstrukturieren und Anwenderprogramme anpassen
Datenbank KUNDEN umstrukturieren und Anwenderprogramme anpassen
Zwischen den einzelnen Schritten ist normaler Datenbankbetrieb möglich. Da zumindest einige Anwenderprogramme sowohl bei 3.) als auch bei 4.) angepasst und übersetzt werden müssen, bietet es sich an, die Schritte 3.) und 4.) zusammenzufassen.