Thursday, September 10, 2009

Upgrade IDM from 10.1.2 to 10.1.4: dba_registry invalid OID

After you upgrade Oracle identity management from 10.1.2(.2) to 10.1.4.0, you will notice that Oracle Internet Directory is listed as Invalid:


idm01@xxxxxxx:/home/idm01> sqlplus / as sysdba
SQL> set lines 132 pages 99
SQL> col version format a10
SQL> col status format a15
SQL> col comp_name for a65
SQL> select COMP_NAME,VERSION,STATUS from dba_registry;
COMP_NAME VERSION STATUS
------------------------------------------------------- ---------- ---------------
Oracle Application Server Portal 10.1.2.0.2 VALID
Oracle Application Server Single Sign-On 10.1.4.0.1 VALID
.
Oracle Internet Directory 10.1.2.0.2 INVALID



The solution is to:
Check $ORACLE_HOME/ldap/admin/LOGS/ldapupgrade.log in the OID (infrastructure) install for errors.
Check for invalid objects and compile them:

select owner,object_name,object_type from dba_objects
where owner='ODS' and status='INVALID';

returned package ridelplg as invalid.

Finally, run this code:

alter session set current_schema = SYS;

declare
rc integer;
begin
rc := ods.ldapUpgUtls.validateODS();
if rc = 0 then
DBMS_IAS_VERSION.SET_COMPONENT_VALID(COMPONENT_ID=>'OID');
else
DBMS_IAS_VERSION.SET_COMPONENT_INVALID(COMPONENT_ID=>'OID');
end if;
end;
/



According to Metalink Doc ID: 374304.1, you should first call

execute DBMS_IAS_VERSION.SET_COMPONENT_UPGRADED(COMPONENT_ID=>'OID');

This, however, reset your version to 10.1.2.0.2 (whereas it was 10.1.2.2.0 when I started...). It should be 10.1.4.0.1.
Edit: After applying patch 10.1.4.3, it states version as 10.1.4.3.0.

No comments: