データベース・リポジトリー内のグループの現行メンバーを取得できない

リポジトリー間構成のデータベース内のグループの現行メンバーを取得しようとすると EntityNotFoundException が発生する場合は、以下の手順に従ってトラブルシューティングを行ってください。

問題

データベース・リポジトリーのグループのメンバーであるユーザーが LDAP リポジトリーから以前に削除されている場合、Virtual member manager は、データベース・リポジトリーのそのグループの現行メンバー結果を戻しません。代わりに EntityNotFoundException がスローされます。

この問題は、LDAP リポジトリー内のメンバーが削除されているのに、存在しないメンバーのグループ・メンバーシップがデータベース・リポジトリーから削除されていないことが原因で発生します。

解決方法

以下の手順に従って、グループが含まれているデータベース・リポジトリーで repositoriesForMemberDeletion カスタム・プロパティーを定義し、グループ・メンバーシップを削除する存在しないメンバーが含まれていた LDAP リポジトリーを指定します。

手順

  1. グループが含まれているデータベース・リポジトリーに対してカスタム・プロパティー repositoriesForMemberDeletion を定義します。wsadmin コマンド setIdMgrCustomProperty を使用して、次の例に示すようにこのカスタム・プロパティーを定義し、値を設定します。
    $AdminTask setIdMgrCustomProperty { -id "DBRepoID" -name "repositoriesForMemberDeletion" -value "TDS;AD" }
    パラメーターとその値
    -id
    このパラメーターを使用して、グループが含まれているデータベース・リポジトリーを指定します。
    -name
    このパラメーターは、グループ・メンバーシップから存在しないメンバーを削除する際に使用されるプロパティーの名前を指定します。プロパティー名として repositoriesForMemberDeletion を指定してください。 このプロパティー名では大/小文字は区別されませんが、このパラメーターの値を変更しないでください。
    -value
    このパラメーターを使用して、データベース・リポジトリー内のグループからメンバーシップを削除するグループ・メンバーが含まれている 1 つ以上の LDAP リポジトリーの ID を指定します。複数のリポジトリー ID を指定するときには、区切り文字としてセミコロン (;) を使用します。存在しないメンバーすべてのグループ・メンバーシップを削除するには、アスタリスク (「*」) を使用します。
  2. サーバーを再始動します。
これで、グループのメンバーを検索すると、残りのグループ・メンバーが表示され、EntityNotFoundException は発生しません。


利用条件 | フィードバック