Mar 2, 2011

О том, где находятся JAR-файлы установленных коннекторов в OIM 11g и как их обновить.

Short introduction: FAQ - where can I find connector JARs which earlier were in JavaTasks folder in OIM 11g?

Q: Где в OIM 11g располагаются JAR-файлы коннекторов, которые были установлены? Как заменить эти JAR-файлы? (например, у меня есть обновленный файл / я добавил в коннектор через декомпиляцию дополнительную функциональность и т.д.).

A: В OIM 11g JAR-файлы коннекторов хранятся в таблицах БД. При разработке собственных коннекторов вы можете все еще копировать их в каталог JavaTasks, но процедура кстановки коннекторов создает запись в таблице OIMHOME_JARS, куда загружает JAR-файлы коннкетора в поле типа BLOB.

Применение данной технологии позволяет избежать повторного копирования JAR-файлов на все узлы кластера при кластерном развертывании Oracle Identity Manager.

Пример таблицы OIMHOME_JARS:

Как обновить JAR-файл коннектора:


1. Установите переменные окружения (ANT_HOME, JAVA_HOME, PATH), перейдите в каталог $OIMHOME/server/bin, запустите скрипт UplodaJars.sh (.cmd на Windows).

2. Укажите:
Имя пользователя
xelsysadm
Пароль
<ваш пароль>
Сервер
t3://<youroimserver>:<youroimport>
(например, t3://localhost:14000)
Внимание! Тут нужно указывать порт именно сервера OIM, а не административного, как в случае с MDS.

InitialFactory
Оставьте по умолчанию
Путь до файла
Путь до вашего JAR-файла, например:
/odrive/dummydata/xmlActiveDirectory.jar

3. Обновите таблицу БД OIM OIMHOME_JARS и убедитесь, что изменилось значение поля UPDATED_ON.

3 comments:

  1. Олег, приветствую.
    Есть вопрос касающийся области видимости библиотек. Я загрузил кастомную библиотеку при помощи UploadJars в БД. При выборе типа указал вариант 2.ScheduleTask. Библиотека появилась в БД и в поле OJ_TYPE указано значение ScheduleTask. Я ожидал что классы моего jar-ника будут доступны из моих кастомных шедулеров, но при попытке к ним обратиться я получаю java.lang.NoClassDefFoundError.
    Я что-то не так делаю или что-то не так понимаю?
    Вообще было бы здорово понять область видимости библиотек, т.е. что куда класть чтобы это было видно из тех или иных мест

    ReplyDelete
  2. Какая версия OIM? Статья писалась по 11gR1, может, в R2 что-то поменялось...

    ReplyDelete
  3. Версия 11R2, точнее 11.1.2.2.0
    На самом деле все еще более печально, я не могу получить доступ из одного шедулера к классам другого шедулера, загруженного в контекте другого плагина.
    Приходится дублировать код. Можно было бы вынести его в отдельную библиотеку, которая доступна из всех мест, но куда такую библиотеку класть - непонятно.

    ReplyDelete