Roman Prokofyev

Chief Scientist at FAIRTIQ. I work on making public transport accessible for everyone.

Баг в AD Connector для Oracle Identity Manager

13 Jul 2011 » юмор, bug, Oracle

See short English version below. Сегодня наконец-то закончилась недельная эпопея борьбы с OIM, в итоге удалось успешно подсоединиться к Active Directory, но это неважно. Важно то, что в процессе поиска неисправностей я дошёл до декомпиляции кода коннектора Oracle, приведу здесь небольшой сниппет:

   if(i <= as.length)
     break;
   if(as[i].equalsIgnoreCase("IT Resource.Key"))
   {
     l = tcresultset.getLongValue(as[i]);
     break;
   }

Обратите внимание на вшитую константу - “IT Resource.Key”, которая есть не что иное, как название столбца в базе данных, из которого следует извлечь значение. А название настоящего столбца в базе данных - “IT Resource**s**.Key”, поэтому коннектор никогда не мог извлечь из таблицы правильное значение ключа (оно получалось нулевым) и, следовательно, не работал :( Вот так небольшая опечатка в коде приводит к полной неработоспособности целого модуля и является причиной головной боли у системных администраторов.

Написал в Oracle о проблеме и попросил другую версию коннектора.

P.S. На всякий случай приведу здесь сообщение об ошибки для индексации поисковиками, вдруг кому-то поможет:

"The error indicated some resource key is invalid  with  statement
  "com.thortech.xl.exception.ConnectorException: ITResource Key cant be less than or equal to zero"

If you see the stack trace like the one above while trying to perform Active Directory Reconciliation with Oracle Identity Manager, then you should use another AD Connector version, the version you are using have hard-coded bug in it.