Jun 13, 2012

FAQ: Проблема производительности отображения профиля пользователя при множестве Lookup-значений для UDF-полей

Short intro: here you can find some info regarding user profile page performance issue, which occurs under certain circumstances.

Столкнулся недавно с любопытной ситуацией, которая, думаю, будет интересна не только мне.

Q: Имеется инсталляция OIM 11gR1 (11.1.1.3.8) с несколькими десятками тысяч пользователей, профиль пользователя расширен многими UDF-полями, часть из которых реализована как выпадающий список из значений, заданных в Lookup-кодах. При этом профиль пользователя в UI открывается от 10 до 30 секунд (в зависимости от места установки БД, быстродействия сети и прочих условий). Что нужно сделать для исправления ситуации?




A: В ходе анализа проблемы был включен лог XELLERATE.SERVER и выяснилось, что во время "задержки" сервер пишет в лог следующие записи (см. скриншот выше):

<08.06.2012 11:26:43 MSD> <Info> <XELLERATE.SERVER> <BEA-000000> <Loading Resource Bundles from DB>
<08.06.2012 11:26:43 MSD> <Info> <XELLERATE.SERVER> <BEA-000000> <retrieving object from cache key = xlWebAdmin:ru_RU>
<08.06.2012 11:26:43 MSD> <Info> <XELLERATE.SERVER> <BEA-000000> <Loading Resource Bundles from DB>
<08.06.2012 11:26:43 MSD> <Info> <XELLERATE.SERVER> <BEA-000000> <could not find the required custom resource bundle for
the given locale. hence looking up for the Server locale specific custom resource bundles>

Также было установлено, что количество этих записей коррелируется с общим количеством записей в Lookup-кодах для всех UDF-полей пользователя (около тысячи значений в сумме для данного случая), и быстродействие возрастает с уменьшением количества возможных Lookup-значений.

Оказалось, что данная проблема на My Oracle Support известна под названием "Bug 12967733: SLOW USER PROFILE WITH LARGE UDF LOOKUP" и была решена в версии 11.1.1.5.2. (OIM11gPS1BP2). В настоящее время ожидается бэкпорт исправлений для OIM11gR1).



2 comments:

  1. Временная затычка:
    Сделать поля лукапов невидимыми.

    ReplyDelete
  2. или отказаться от выбора значений полей из списка =)

    я дернул PM еще раз, ждем результата

    ReplyDelete