Entfernen von nicht mehr verwendeten Feldnamen

Jeder Notes-Entwickler kennt das: Man hat zu Testzwecken temporär einige Felder in einer Maske verwendet. Später werden diese Felder dann aus der Maske entfernt. Totzdem verbleiben diese Felder offensichtlich auf „ewig“ in der Datenbank.


Im R5.x Designer-Client geöffnete Maske mit Testfeldern

 

Technischer Hintergrund
Immer wenn ein neues Feld zur Datenbank hinzugefügt wird, fügt Notes es zur internen UNK-Tabelle (=UNique Key Table) hinzu. Die daraus abgeleitete Unique Field List wird in R4.x in der Felder- und Formel-Dialogbox und ab R5.x (wie im Bild zu sehen) auf dem Reference-Register gelistet.

Als „Hinzufügen eines Feldes zur einer Datenbank“ wertet Notes:

  • das Hinzufügen eines Feldes in einem Design-Element (z.B. Maske)
  • das Hinzufügen eines Feldes in einem Dokument (z.B. während der Ausführung eines Agenten)
  • das Einfügen eines Dokumentes, welches Felder mit neuen Feldnamen enthält, in eine Datenbank (z.B. über die Windows Zwischenablage)

Wird das betroffene Feld später gelöscht, verbleibt es doch in der Unique Field List bis die Datenbank komprimiert wird. Während der Ausführung des Compact-Prozesses werden alle bestehenden Dokumente und Design-Elemente untersucht und hierbei die Unique Field List auf den aktuellen Stand gebracht.

Achtung!
Wenn die Datenbank über einen Volltext-Index verfügt, werden die Felder NICHT entfernt.

Lösung
Sie sollten folgende Schritte zum erfolgreichen Entfernen der nicht mehr verwendeten Felder durchführen.

  • Löschen Sie die Felder aus allen Dokumenten der Datenbank
  • Löschen Sie die Felder aus allen Masken und Teilmasken der Datenbank
  • Löschen Sie einen ggf. vorhandenen Volltext-Index der Datenbank
  • Komprimieren Sie die Datenbank mit der Option -c (copy style compaction)
  • Verwenden Sie hierzu folgende Syntax an der Domino Serverkonsole:LOAD COMPACT datenbank.nsf -c
    (Pfadangaben – wie immer bei Server Konsolenbefehlen – relativ zum Domino-Data-Verzeichnis)

Hinweis
In seltenen Fällen wurde beobachtet, dass – bedingt durch eine defekte Teilmaske in der Datenbank – die oben beschriebenen Vorgehensweise nicht funktioniert hat.

Erstellen Sie in diesem Falle eine neue Teilmaske mit beliebigem Namen, transferieren Sie die vorhandenen Felder und sonstigen Inhalte über die Zwischenablage, löschen Sie die original Teilmaske und bennen Sie die neue Teilmaske mit dem zuvor verwendeten Namen um.

Notes/Domino Version: ab 4.x