リポジトリー間構成のデータベース内のグループの現行メンバーを取得しようとすると EntityNotFoundException が発生する場合は、以下の手順に従ってトラブルシューティングを行ってください。
問題
データベース・リポジトリーのグループのメンバーであるユーザーが LDAP リポジトリーから以前に削除されている場合、Virtual member manager は、データベース・リポジトリーのそのグループの現行メンバー結果を戻しません。代わりに EntityNotFoundException がスローされます。
この問題は、LDAP リポジトリー内のメンバーが削除されているのに、存在しないメンバーのグループ・メンバーシップがデータベース・リポジトリーから削除されていないことが原因で発生します。
解決方法
以下の手順に従って、グループが含まれているデータベース・リポジトリーで repositoriesForMemberDeletion カスタム・プロパティーを定義し、グループ・メンバーシップを削除する存在しないメンバーが含まれていた LDAP リポジトリーを指定します。
手順
- グループが含まれているデータベース・リポジトリーに対してカスタム・プロパティー repositoriesForMemberDeletion を定義します。wsadmin コマンド setIdMgrCustomProperty を使用して、次の例に示すようにこのカスタム・プロパティーを定義し、値を設定します。
$AdminTask setIdMgrCustomProperty { -id "DBRepoID" -name "repositoriesForMemberDeletion" -value "TDS;AD" }
- パラメーターとその値
- -id
- このパラメーターを使用して、グループが含まれているデータベース・リポジトリーを指定します。
- -name
- このパラメーターは、グループ・メンバーシップから存在しないメンバーを削除する際に使用されるプロパティーの名前を指定します。プロパティー名として repositoriesForMemberDeletion を指定してください。
このプロパティー名では大/小文字は区別されませんが、このパラメーターの値を変更しないでください。
- -value
- このパラメーターを使用して、データベース・リポジトリー内のグループからメンバーシップを削除するグループ・メンバーが含まれている 1 つ以上の LDAP リポジトリーの ID を指定します。複数のリポジトリー ID を指定するときには、区切り文字としてセミコロン (;) を使用します。存在しないメンバーすべてのグループ・メンバーシップを削除するには、アスタリスク (「*」) を使用します。
- サーバーを再始動します。
これで、グループのメンバーを検索すると、残りのグループ・メンバーが表示され、EntityNotFoundException は発生しません。