fighting for truth, justice, and a kick-butt lotus notes experience.

$Readers - Oder die Suche nach der Nadel im Heuhaufen

Detlev Poettgen  Februar 19 2011 04:57:25 PM
Es ist schon immer wieder beeindruckend wie weitreichend und detailliert das Berechtigungskonzept von Lotus Notes ist. Beeindruckend und zum Teil kann es zu ungeahnten Effekten führen.

Ich habe letzte Woche einige Zeit damit verbracht fehlenden Dokumenten in Repliken eines Domino Directorys in einer Multi-Domänen-Umgebung hinterher zu suchen.
Auf den ersten Blick unerklärlich, warum nicht auf allen Repliken die gleiche Dokumentenanzahl vorhanden war. Nach dem üblichen Prozedere (Löschen des Replikationsprotokolls; prüfen ob Replikationsformeln verwendet werden oder Prüfung der ACL-Berechtigungen) und der Neuanlage der Replik war die Dokumentenanzahl immer noch unterschiedlich. Es fehlten zum Teil Personendokumente und einige Gruppen.

Was tun?

Erst einmal habe ich eine kleine Tool-Datenbank mit einem Agenten geschrieben. Über den Agenten werden die auf der einen bzw. anderen Seite fehlenden Dokumente in ein Log-Dokument geschrieben und dort in ein Richtextfeld mit einem Doc-Link geschrieben.

Mit den nun bekannten fehlenden Dokumenten und einem Vergleich auf Feldebene stellte sich heraus, das alle betroffenen Docs ein gefülltes $Readers-Feld hatten.
Das Feld wird automatisch erzeugt, wenn jemand im Dokumenten-Eigenschaften-Dialog die Zugriffsberechtigung "Who can read this document" anpasst:

Image:$Readers - Oder die Suche nach der Nadel im Heuhaufen

Was war passiert: Einer der lokalen Administratoren wollte auf diesem Weg dafür gesorgt, das bestimmte Benutzer und Gruppen nicht im Adreßauswahldialog erscheinen. Für ihn war das Problem gelöst. Mir hat die Suche nach der Ursache einige Stunden gekostet.
Da die Server nun teilweise diese Dokumente nicht mehr sahen, konnten sie auch nicht repliziert werden.

In meiner Tool-Datenbank habe ich nun den Agenten erweitert, so dass wenn ein Dokument fehlt und ein $Readers-Feld gefunden wird, der Agent das $Readers-Feld löscht. Und schon funktionierte auch die Replikation wieder und alle Dokumente waren da.

Das wirklich erstaunliche war nun: Kaum zwei Tage nach dem Bereinigen tauchten schon wieder zwei fehlende Personendokumente auf. Jetzt hatte ein anderer Admin, die gleiche Idee gehabt.
Sicherheitshalber läuft der Agent nun periodisch. Basta

Treffpunkte

Archive