Mit SET-RELOCATE-PARAMETERS werden die Parameter gesetzt, die nötig sind, um eine RELOCATE-DML durchführen zu können.
Die Verlagerung erfolgt in einer Folge von Verlagerungstransaktionen, die in einem oder in mehreren aufeinanderfolgenden Online-Utility-Läufen durchgeführt werden. Der DBH pflegt dabei intern transaktionsübergreifende Informationen über den Fortschritt der Verlagerung (z.B. Quell- und Zielpegel). Mit dem Ende der Session bzw. des Sessionabschnitts oder beim Abschalten der Datenbank bzw. des entsprechenden Realms geht diese Information verloren.
SET-RELOCATE-PARAMETERS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
SUBSCHEMA-NAME = <structured-name 1..30>
Subschema-Name. Es sind nur Namen von Benutzersubschemata erlaubt.
REALM-NAME = <structured-name 1..30>
Realm-Name. Der Realm-Name muss ein gültiger Name im definierten Subschema sein. Es sind nur Namen von Benutzerrealms erlaubt. Namen von temporären Realms sind nicht erlaubt.
In dem Subschema müssen auch alle Realms enthalten sein, die DBTTs enthalten, deren Einträge auf zu verlagernde Sätze und Tabellen in dem Realm verweisen. Die entsprechende Prüfung erfolgt erst bei Ausführung der DMLs. Dagegen müssen Satzarten und Sets des Realms nicht vollständig im angegebenen Subschema enthalten sein. Die Verlagerungung von Sätzen und Tabellen erfolgt insofern unabhängig von den Angaben in dem Subschema.
RELOCATE-TYPE =
Relocate-Typ. legt die Variante der Verlagerung fest.
RELOCATE-TYPE = *RECORD-PAGES(...)
Verlagert Datensätze und kleine Tabellen innerhalb eines Realms.
INITIALIZE =
Legt das Verhalten der RELOCATE-DML fest, wenn die Verlagerung in einem Realm auf mehrere Online-Utility-Läufe verteilt ist.
Immer dann, wenn bei INITIALIZE = *ANY oder *YES eine Initialisierung von Quell- und Zielpegel erfolgt, wird implizit die Freiplatzsuche auf den Beginn des Realms positioniert; dies entspricht einem Aufruf von FPASCAN mit SEARCH-MODE=*REUSE. Insbesondere werden nach einer vollständigen Verlagerung Quell- und Zielpegel noch nicht automatisch neu initialisiert. Die weitere Durchführung von Verlagerungstransaktionen mit INITIALIZE = *NO oder INITIALIZE = *ANY wird also immer die Rückkehrinformation bekommen, dass nichts mehr zu tun ist.
INITIALIZE = *ANY
Quell- und Zielpegel werden abhängig von bestimmten Bedingungen neu initialisiert:
Wurde in einem vorangegangenen Online-Utility-Lauf bereits eine Verlagerung begonnen, dann wird diese Verlagerung fortgesetzt. Quell- und Zielpegel werden nicht neu initialisiert.
Wurde in einem vorangegangenen Online-Utility-Lauf in diesem Sessionabschnitt bzw. in dem Zeitraum seit dem letzten Zuschalten des betreffenden Realms noch keine Verlagerung begonnen, dann führt die erste Verlagerungstransaktion implizit zu einer Initialisierung von Quell- und Zielpegel.
INITIALIZE = *YES
Quell- und Zielpegel werden auf jeden Fall neu initialisiert.
Bei der ersten Verlagerungstransaktion wird auf jeden Fall eine Initialisierung von Quell- und Zielpegel vorgenommen. Die Verlagerung beginnt somit von neuem.
Diese Einstellung können Sie insbesondere dann nutzen, wenn vorher mit CLASH-HANDLING=*SKIP-PAGE Zugriffskonflikte mit anderen Anwendertransaktionen dazu geführt haben, dass verlagerbare Seiten übersprungen wurden, um deren Verlagerung nunmehr nachzuholen.
INITIALIZE = *NO
Quell- und Zielpegel werden nicht neu initialisiert.
Eine in einem vorangegangenen Online-Utility-Lauf bereits begonnene Verlagerung wird fortgesetzt. Wurde noch keine Verlagerung begonnen, wird ebenfalls keine Initialisierung der Quell- und Zielpegel durchgeführt.
Wenn Sie eine Verlagerung in einem Realm in mehreren unabhängigen Online-Utility-Läufen durchführen wollen, können Sie mit INITIALIZE=*NO verhindern, dass eine eigentlich beabsichtigte Fortsetzung zu einem Neubeginn führt. Es könnte ja sein, dass zwischen zwei Online-Utility-Läufen offline Aktivitäten auf dem Realm durchgeführt worden sind, die eine weitere Verlagerung - nunmehr neu initialisiert - nicht mehr sinnvoll machen.
PAGES-PER-DML= <integer 1..16777215>
Gibt an, wieviele Quellseiten mit einer RELOCATE-DML maximal geleert werden sollen (Standardwert: 1).
SKIP-ABOVE-FILLING = <integer 1..100>
Legt einen Prozentwert fest, der angibt, wieviel die Quellseite höchstens gefüllt sein darf, damit sie geleert wird. Der Standardwert 100 bezieht alle verlagerbaren Seiten ein. Mit einem kleineren Wert können Sie die Verlagerung auf mäßig gefüllte Seiten
beschränken. Eine Angabe unter 100 benutzt der DBH auch, um anhand der Freiplatzverwaltungsdaten Seiten von der Verlagerung auszuschließen. Mit dieser Optimierung können Sie somit auch unnötiges Lesen von Datenseiten vermeiden.
CLASH-HANDLING =
Legt fest, wie sich die RELOCATE-DML verhält, wenn eine durch eine andere Transaktion gesperrte Quellseite als nächste bearbeitet werden soll.
CLASH-HANDLING = *BREAK-DML
Die RELOCATE-DML wird abgebrochen, evtl. in dieser DML oder in vorigen DMLs derselben Transaktion schon durchgeführte Verlagerungen bleiben aber erhalten. Mit der nächsten RELOCATE-DML - in der Regel in einer neuen Transaktion - evtl. nach einer Verzögerung in der UDS-Online-Utility, wird erneut versucht, diese Seite zu verlagern.
Bei CLASH-HANDLING=*BREAK-DML sind alle gewünschten Seiten verlagert, wenn Quell- und Zielpegel aufeinandertreffen. Bei auftretenden Konflikten kann es aber sein, dass dazu zusätzliche RELOCATE-DMLs benötigt werden.
CLASH-HANDLING = *SKIP-PAGE
Die Seite wird ausgelassen. Es wird auch nicht versucht, in einer Folge-DML die Verlagerung dieser Seite zu wiederholen. Wurden innerhalb einer RELOCATE-DML allerdings bereits zu viele Quell- oder Zielseiten ausgelassen, wird die DML immer abgebrochen.
Bei CLASH-HANDLING=*SKIP-PAGE wird im Allgemeinen mit einer RELOCATE-DML die gewünschte Anzahl von Seiten (Parameter PAGES-PER-DML) verlagert. Es kann aber sein, dass dann innerhalb von einem RELOCATE-Zyklus nicht alle gewünschten Seiten verlagert wurden. In diesem Fall kann mit einer Folgeaktion (INITIALIZE=*YES) die Verlagerung in einem späteren Zeitraum abgeschlossen werden, wenn z.B. entsprechende Konflikte unwahrscheinlicher sind.
CLASH-HANDLING = *WAIT-FOR-TRANSACTION
Die RELOCATE-Transaktion wartet bis die gesperrte Seite von der sperrenden Transaktion freigegeben wird.
RELOCATE-TYPE = *BASE-LEVEL-TABLE-PAGES(...)
Verlagert Stufe-0-Seiten mehrstufiger Tabellen innerhalb eines Realms, verschiebt also ganze Stufe-0-Seiten einer Tabelle an den freien Anfang eines Realms.
INITIALIZE =
Siehe „INITIALIZE =“.
PAGES-PER-DML= <integer 1..16777215>
Gibt an, wieviele Quellseiten mit einer RELOCATE-DML maximal geleert werden sollen (Standardwert: 1).
CLASH-HANDLING =
Siehe „CLASH-HANDLING =“.
RELOCATE-TYPE = *INDEX-LEVEL-TABLE-PAGES(...)
Verlagert Stufe-N-Seiten mehrstufiger Tabellen innerhalb eines Realms, verschiebt also Stufe-N-Seiten einer Tabelle an den freien Anfang eines Realms.
INITIALIZE =
Siehe „INITIALIZE =“.
PAGES-PER-DML= <integer 1..16777215>
Gibt an, wieviele Quellseiten mit einer RELOCATE-DML maximal geleert werden sollen (Standardwert: 1).
CLASH-HANDLING =
Siehe „CLASH-HANDLING =“.
RELOCATE-TYPE = *DISTRIBUTABLE-TABLE-PAGES(...)
Verlagert Stufe-0-Seiten einer verteilbaren Liste von einem Realm in einen anderen Realm.
INITIALIZE =
Siehe „INITIALIZE =“.
PAGES-PER-DML= <integer 1..16777215>
Gibt an, wieviele Quellseiten mit einer RELOCATE-DML maximal geleert werden sollen (Standardwert: 1).
CLASH-HANDLING =
Siehe „CLASH-HANDLING =“.
SET-NAME= <structured-name 1..30>
Legt fest, für welche verteilbare Liste die Verlagerung stattfinden soll.
Der angegebene Set muss eine verteilbare Liste sein, sonst findet keine Verschiebung statt. In diesem Fall wird eine Fehlermeldung ausgegeben und der Ablauf wird abgebrochen.
Die entsprechenden Prüfungen werden erst bei Ausführung der DMLs der UDS-Online-Utility durchgeführt.
TARGET-REALM-NAME= <structured-name 1..30>
Legt den Zielrealm fest, also den Realm, in den verlagert werden soll.
Dieser Realm muss sich von dem Quellrealm (Parameter REALM-NAME) unterscheiden und muss im eingestellten Subschema (Parameter SUBSCHEMA-NAME) bekannt sein und zur verteilbaren Liste (WITHIN-Klausel der DDL-RECORD-Deklaration der Membersatzart) gehören.
Die entsprechenden Prüfungen werden erst bei Ausführung der DMLs der UDS-Online-Utility durchgeführt.