Настройка производительности OIM

У нас есть сервер OIM 11g, развернутый через Weblogic и настроенный с базой данных Oracle 11g. У нас большая база пользователей, насчитывающая около 150 тыс. пользователей. У нас есть интерфейсное приложение в качестве клиента OIM-SCIM. Всякий раз, когда регистрируется новый пользователь, клиент вызывает вызов создания пользователя OIM-SCIM, используя выделенные учетные данные администратора. Ответ на вызов Create User занимает слишком много времени (~40 секунд).

Мы создали индексы по таблице USR везде, где это применимо, но по-прежнему не можем добиться хорошей производительности. Из журналов видно, что OIM извлекает всех пользователей перед вставкой одного

Любые предложения относительно того, как улучшить производительность OIM-SCIM?

ОИМ-диагностические журналы

    [2017-09-26T08:22:55.306+05:30] [oim_server1] [NOTIFICATION] [] [oracle.iam.identity.usermgmt.impl] [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 5e09005b7f67b5f4:-3946d497:15eb9006a07:-8000-000000000002121a,0] [APP: oim#11.1.2.0.0] [DSID: 0000Luw6W2F3z04_vTL6iX1PmFNT00000H]  NOPAGING:: Search Criteria: arg1 = (arg1 = (Status) NOT_EQUAL arg2 = (Deleted)) AND arg2 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (arg1 = (usr_key) IN arg2 = ([1, 153, 169, 178, 179, 180, 185, 209, 218, 220, 225, 231, 236, 254, 260, 268, 274, 282, 290, 292, 441, 443, 455, 472, 473, 474, 487, 503, 518, 528, 534, 538, 543, 549, 556, 560, 563, 567, 568, 573, 583, 587, 588, 601, 602, 610, 611, 613, 616, 627, 630, 631, 632, 635, 649, 669, 679, 702, 298, 301, 302, 305, 318, 324, 329, 331, 340, 343, 353, 357, 367, 373, 386, and many more.... 8499, 18508, 18517, 18523, 18535, 18547, 18561, 18563, 18571, 18577, 18579, 18614, 18663, 18671, 18687, 18699, 18709, 18710, 18731, 18745]))) OR arg2 = (arg1 = (usr_key) IN arg2 = ([18782, 18788, 18807, 19932, 19935, 19943, 19960, 19964]))) AND arg2 = (arg1 = (usr_key) EQUAL arg2 = (*)))
[2017-09-26T08:22:55.308+05:30] [oim_server1] [NOTIFICATION] [] [oracle.iam.identity.usermgmt.impl] [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 5e09005b7f67b5f4:-3946d497:15eb9006a07:-8000-000000000002121a,0] [APP: oim#11.1.2.0.0] [DSID: 0000Luw6W2F3z04_vTL6iX1PmFNT00000H]  NOPAGING:: PAGING_LIMIT system property = 500
[2017-09-26T08:22:55.308+05:30] [oim_server1] [NOTIFICATION] [] [oracle.iam.identity.usermgmt.impl] [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 5e09005b7f67b5f4:-3946d497:15eb9006a07:-8000-000000000002121a,0] [APP: oim#11.1.2.0.0] [DSID: 0000Luw6W2F3z04_vTL6iX1PmFNT00000H] Searching for users with the specified criteria.
[2017-09-26T08:23:44.472+05:30] [oim_server1] [NOTIFICATION] [] [oracle.iam.configservice.impl] [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 5e09005b7f67b5f4:-3946d497:15eb9006a07:-8000-000000000002121a,0] [APP: oim#11.1.2.0.0] [DSID: 0000Luw6W2F3z04_vTL6iX1PmFNT00000H] oracle.iam.configservice.internal.impl.ConfigManagerInternalImpl getAttributeusr_key
[2017-09-26T08:23:44.473+05:30] [oim_server1] [NOTIFICATION] [] [oracle.iam.configservice.impl] [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 5e09005b7f67b5f4:-3946d497:15eb9006a07:-8000-000000000002121a,0] [APP: oim#11.1.2.0.0] [DSID: 0000Luw6W2F3z04_vTL6iX1PmFNT00000H] oracle.iam.configservice.internal.impl.ConfigManagerInternalImpl getAttributeExiting

person Shivam Mathur    schedule 25.09.2017    source источник


Ответы (1)


Я думаю, что есть руководство по настройке производительности. от Oracle, который вы можете проверить в первую очередь.

Есть несколько причин, по которым это может занять много времени. Сначала проверьте, есть ли какая-либо разница в создании пользователя с помощью пользовательского интерфейса OIM, если это занимает одинаковое время, и все вещи из руководства настроены, затем думаю, что я бы сделал, проверьте обработчики, которые прикреплены к процессу создания пользователя. Их выполнение может занять некоторое время.

person Philipp Grigoryev    schedule 25.09.2017
comment
@Phillip, мы выполнили почти все из руководства по настройке производительности, но проблема все еще не решена. Из пользовательского интерфейса OIM пользователи предварительно загружаются, когда мы открываем консоль идентификации, поэтому создание нового пользователя занимает меньше времени. Используя SCIM, выполняется запрос критериев поиска, выполнение которого занимает 25-30 секунд, я обновил журналы в вопрос. - person Shivam Mathur; 26.09.2017
comment
Ну, это действительно странная вещь. У меня еще не было возможности работать с SCIM, но все равно это выглядит не так. Вы уверены, что у вас нет чего-то странного в вашем внешнем приложении, которое выполняет этот гигантский поиск? - person Philipp Grigoryev; 27.09.2017
comment
в настоящее время мы находимся в режиме тестирования и выполняем вызовы SCIM Create User из клиента пользовательского интерфейса SOAP. Такое поведение оказывается огромным препятствием для нашего приложения. - person Shivam Mathur; 27.09.2017
comment
@Шивам, твоя проблема решена? Даже я сталкиваюсь с проблемами производительности. Мой случай немного отличается, но проблема такая же. Мне нужно сделать вызов БД из моего кода, чтобы проверить конфликт SOD для прав, поскольку API недоступен. И есть комбинации nCr, которые мы должны проверить ,если n=100,r=2, для комбинаций 100C2 OIM слишком долго отвечает, а однажды даже завис. Если вы нашли обходной путь, не могли бы вы пролить свет? - person ps2090; 25.10.2017
comment
@PriyaSharma Мы нашли обходной путь: мы использовали /Users API для создания пользователя, что занимало слишком много времени. Вместо этого мы используем API саморегистрации OIM (/Me), который отлично работает. - person Shivam Mathur; 14.11.2017