Mit den hier beschriebenen Schritten können Sie eine Fehlerbehebung vornehmen, wenn bei dem Versuch, die aktuellen Mitglieder einer Gruppe in einem Datenbankrepository mit repositoryübergreifender Konfiguration zu suchen, eine Ausnahmebedingung des Typs "EntityNotFoundException" auftritt.
Problem
Virtual Member Manager gibt für eine Gruppe in einem Datenbankrepository nicht die Ergebnisse für die aktuellen Mitglieder zurück, wenn ein Benutzer, der zu dieser Gruppe gehörte, zuvor aus einem LDAP-Repository gelöscht wurde.
Stattdessen wird eine Ausnahmebedingung des Typs "EntityNotFoundException" ausgelöst.
Dieses Problem tritt auf, weil die Gruppenzugehörigkeit von nicht vorhandenen Mitgliedern nicht aus dem Datenbankrepository gelöscht wird, wenn Mitglieder der Gruppe aus dem LDAP-Repository gelöscht werden.
Lösung
Befolgen Sie die nachstehende Prozedur, um das angepasste Merkmal
"repositoriesForMemberDeletion" im Datenbankrepository, in dem die Gruppe vorhanden ist, zu definieren und die LDAP-Repositorys der nicht vorhandenen Mitglieder anzugeben, deren Gruppenzugehörigkeit gelöscht werden soll.
Vorgehensweise
- Definieren Sie das angepasste Merkmal "repositoriesForMemberDeletion" für das Datenbankrepository, in dem die Gruppe vorhanden ist.
Verwenden Sie den wsadmin-Befehl setIdMgrCustomProperty, um das angepasste Merkmal zu definieren und seinen Wert festzulegen. Dies ist im folgenden Beispiel gezeigt:
$AdminTask setIdMgrCustomProperty { -id "datenbankrepository-id" -name "repositoriesForMemberDeletion" -value "TDS;AD" }
- Parameter und ihre Werte
- -id
- Mit diesem Parameter geben Sie das Datenbankrepository an, in dem sich die Gruppe befindet.
- -name
- Dieser Parameter gibt den Namen des Merkmals an, das beim Löschen nicht vorhandener Mitglieder aus der Gruppenzugehörigkeit verwendet wird.
Sie müssen für den Namen des Merkmals
den Wert "repositoriesForMemberDeletion" angeben.
Bei dem Namen muss die Groß-/Kleinschreibung nicht beachtet werden. Der Wert dieses Parameters sollte jedoch nicht geändert werden.
- -value
- Geben Sie mit diesem Parameter die IDs von einem oder mehreren LDAP-Repositorys an, in denen die Gruppenmitglieder enthalten sind, deren Mitgliedschaft Sie aus der Gruppe im Datenbankrepository löschen wollen.
Verwenden Sie ein Semikolon (;) als Begrenzungszeichen, um mehrere Repository-IDs anzugeben.
Verwenden Sie einen Stern (*), um alle Gruppenzugehörigkeiten von nicht vorhandenen Mitgliedern zu löschen.
- Starten Sie den Server erneut.
Falls Sie jetzt nach Mitgliedern der Gruppe suchen, werden die verbleibenden Gruppenmitglieder angezeigt und die Ausnahmebedingung
des Typs "EntityNotFoundException" tritt nicht auf.