Skip Headers

Oracle® Identity Management Integration Guide
10g Release 2 (10.1.2)
Part No. B14085-01
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

E Troubleshooting Oracle Directory Integration and Provisioning

This appendix describes how to troubleshoot Oracle Directory Integration and Provisioning. It contains these topics:


See Also:


Troubleshooting the Oracle Directory Integration and Provisioning Server

This section contains these topics:

Troubleshooting the Oracle Directory Integration and Provisioning Server in an Infrastructure Installation

After you start the Oracle directory integration and provisioning server, you can verify that it is running by following these steps:

  1. On UNIX, use the following command to verify that odisrv process is running:

    ps -ef | grep odisrv
    
    

    For Windows operating systems, obtain the value of process ID (PID) for the odisrv process from $ORACLE_HOME/ldap/log/oidmon.log. Then, launch Task Manager and click the Processes tab to verify that the process is running.

  2. If the Oracle directory integration and provisioning server is not running, then examine the $ORACLE_HOME/ldap/log/oidmon.log file to determine the reason why the server did not start.

  3. If the log file shows any database related errors:

    1. Verify that a value is set for ORACLE_SID.

    2. Verify that the connect string assigned to ORACLE_SID is specified in the $ORACLE_HOME/network/admin/tnsnames.ora file.

  4. Ensure that the log file lists valid values for the server instance number and the configset number arguments. If the values are set correctly, then examine the file $ORACLE_HOME/ldap/log/odisrv_xx.log where xx is the number of the started instance. If the odisrv_xx.log file indicates a registration error, then re-register the Oracle directory integration and provisioning server by using odisrvreg.

  5. If you do not find any errors in the previous step, then examine the file $ORACLE_HOME/ldap/log/odisrv_jvm_yyy.log, where yyy is the process identifier of the odisrv process that should have started. Look for the file with the latest timestamp.

Troubleshooting the Oracle Directory Integration and Provisioning Server in an Oracle Directory Integration and Provisioning-Only Installation

After you start the Oracle directory integration and provisioning server, you can verify that it is running by following these steps:

  1. On UNIX, use the following command to verify that odisrv process is running:

    ps -ef | grep odisrv
    
    

    For Windows operating systems, obtain the value of process ID (PID) for the odisrv process from the $ORACLE_HOME/ldap/log/odisrv_xx.log file, where xx is the number of the started instance. Then, launch Task Manager and click the Processes tab to verify that the process is running.

  2. Oracle directory integration and provisioning server, then examine the odisrv_xx.log file. If the file contains a registration error, then re-register the Oracle directory integration and provisioning server by using odisrvreg.

  3. If you do not find any errors in the previous step, then examine the file $ORACLE_HOME/ldap/log/odisrv_jvm_yyy.log, where yyy is the process identifier of the odisrv process that should have started. Look for the file with the latest timestamp.

Troubleshooting Utilities

This section discusses the oditest and diptester utilities that you can use to troubleshoot synchronization problems.

The oditest Utility

Troubleshooting synchronization can be complex if there are numerous profiles running or if the synchronization interval for a particular profile is set to occur too infrequently. In such cases, the behavior of any connector can be tested using the oditest utility as follows:

  1. If numerous profiles are running, then use the Directory Integration and Provisioning Assistant to selectively disable the profile you want to troubleshoot. If a single profile is running, then stop the directory integration and provisioning server.

  2. Go to $ORACLE_HOME/bin and run the oditest utility using the following syntax:

    oditest sync | prov profile_name host=host_of_Oracle_Internet_Directory
    port=port_for_Oracle_Internet_Directory binddn=bind_DN 
    bindpass=password_for_the_bind_DN sslauth=0 debug=63
     
    

    The following example shows how to run the oditest utility with a SunONE Directory Server synchronization profile:

    oditest sync IplanetImport host=my-oidhost port=3060 binddn=cn=orcladmin
    bindpass=welcome1 sslauth=0 debug=63
    

See Also:

The chapter on logging, auditing, and debugging the directory in Oracle Internet Directory Administrator's Guide

The diptester Utility

The diptester utility is a shell script tool that helps you troubleshoot synchronization problems. You can download the diptester utility from Oracle Technology Network at http://www.oracle.com/technology/index.html.


Note:

To run shell script tools on the Windows operating system, you need one of the following UNIX emulation utilities:

The diptester utility runs in a UNIX shell that makes calls to the Directory Integration and Provisioning Assistant (dipassistant), the oditest utility, and various LDAP command-line utilities. When following the troubleshooting procedure in this section, you can use the diptester utility to:

  • Make changes to a directory integration profile

  • View log files

  • Create test entries

  • Get or set the last applied change key

  • Dump entire profile contents

  • Reload the map file

  • Start and stop the directory integration and provisioning server

  • Capture errors in trace files for uploading to Oracle Support

  • Perform initial bootstrapping of users


Note:

When the directory integration and provisioning server performs a synchronization, it reads the last applied change key and caches the value. At the next synchronization interval, the directory integration and provisioning server updates Oracle Internet Directory with the last execution time and the cached value of the last applied change key.

Before you manually change the last applied change key in a synchronization profile, be sure to stop the directory integration and provisioning server. Otherwise at the next interval your change will be overwritten by the cached value. In fact, you should always stop the directory integration and provisioning server before changing any values in a synchronization profile.


The diptester utility is installed in the $ORACLE_HOME/bin directory. The installation process also creates a file named $ORACLE_HOME/diptester.ini, which contains configuration settings for the diptester utility. Although not required, you can alter the behavior of the diptester utility by modifying the configuration set number, profile name, and other settings in the diptester.ini file.


See Also:

$ORACLE_HOME/diptester/README.txt for additional information on configuring and running the diptester utility

Troubleshooting Provisioning

You can monitor certain provisioning integration profile status information from the Oracle Enterprise Manager 10g Application Server Control Console.

  1. On the main Application Server Control Console page, select the name of the Oracle Application Server instance you want to manage in the Standalone Instances section. The Oracle Application Server home page opens for the selected instance.

  2. In the System Components table, select OID in the Name column. This Oracle Internet Directory page opens. The status should be green if the required packages are installed properly. This does not indicate whether the Oracle directory integration and provisioning server is running or not.

  3. To check the status of the servers, select Directory Integration to display the Directory Integration Platform Status page. This page displays the various running instances of the directory integration platform servers—including those for both provisioning and synchronization. The main data displayed for provisioning integration profiles in this window are:

    • Name of the subscribed application

    • Name of the organization for which the subscription was made

    • Status of the profile (ENABLED or DISABLED)

    • Change key in Oracle Internet Directory up to which the events have been propagated to the application on behalf of this profile

    • Last Execution Time

    • Last Successful Execution Time of the profile.

    • Errors, if any


    Note:

    The Directory Integration Platform Status page does not currently display the various event subscriptions for this profile

You can also get detailed output on provisioning integration status by running the oidprovtool utility with the operation argument status. The oidprovtool utility is located in the $ORACLE_HOME/bin directory.

Troubleshooting Synchronization

This section contains these topics:

Oracle Directory Integration and Provisioning Server Synchronization Process Flow

When debugging synchronization issues between Oracle Internet Directory and a connected directory, it helps to understand the synchronization process flow of the Oracle directory integration and provisioning server.

Oracle Directory Integration and Provisioning Server Synchronization Process Flow for an Import Profile

The Oracle directory integration and provisioning server reads all import profiles at startup. For each profile that is set to ENABLE, the Oracle directory integration and provisioning server performs the following tasks during the synchronization process:

  1. Connects to a third-party directory

  2. Gets the value of the last change key from the connected directory

  3. Connects to Oracle Internet Directory

  4. Gets the value of the profile's last applied change key from Oracle Internet Directory

  5. For SunONE connections, the Oracle directory integration and provisioning server searches the remote change logs for entries greater than the value of the last applied change key and less than or equal to the value of the last change key. For Active Directory connections, the Oracle directory integration and provisioning server searches for this information in the remote directory's uSNChanged values. For other types of connectors, such as the Oracle Human Resources connector, the Oracle directory integration and provisioning server performs similar types of searches, although the method by which data is exchanged varies according to the type of connection.

  6. Maps the data values from the connected directory to Oracle Internet Directory values

  7. Creates an Oracle Internet Directory change record

  8. Processes change (add, change, delete)

  9. Updates the Oracle Internet Directory import profile with the last execution times and the last applied change key from the connected directory

  10. Enters sleep mode for the number of seconds specified for the synchronization interval

Oracle Directory Integration and Provisioning Server Synchronization Process Flow for an Export Profile

The Oracle directory integration and provisioning server reads all export profiles at startup. For each profile that is set to ENABLE, the Oracle directory integration and provisioning server performs the following tasks during the synchronization process:

  1. Connects to a third-party directory

  2. Connects to Oracle Internet Directory

  3. Gets the value for the last change key from Oracle Internet Directory

  4. Gets the value of the profile's last applied change key from Oracle Internet Directory

  5. For SunONE connections, the Oracle directory integration and provisioning server searches the remote change logs for entries greater than the value of the last applied change key and less than or equal to the value of the last change key. For Active Directory connections, the Oracle directory integration and provisioning server searches for this information in the remote directory's uSNChanged values. For other types of connectors, such as the Oracle Human Resources connector, the Oracle directory integration and provisioning server performs similar types of searches, although the method by which data is exchanged varies according to the type of connection.

  6. Maps the data values from Oracle Internet Directory to the connected directory values

  7. Creates a change record

  8. Processes change (add, change, delete) on the connected directory

  9. Updates the Oracle Internet Directory export profile with the last execution times and the last applied change key from Oracle Internet Directory

  10. Enters sleep mode for the number of seconds specified for the synchronization interval

Checklist for Debugging Synchronization

When troubleshooting synchronization, use the following as a checklist.

  • On UNIX, use the following command to verify that the Oracle directory integration and provisioning server process (odisrv) is running:

    ps -ef | grep odisrv
    
    

    For Windows operating systems, obtain the value of process ID (PID) for the odisrv process from $ORACLE_HOME/ldap/log/oidmon.log. Then, launch Task Manager and click the Processes tab to verify that the process is running.

  • Check whether there is also a directory integration and provisioning server instance running.

    If OracleAS Portal, Oracle Collaboration Suite, or another component needs provisioning, then there is probably a directory integration and provisioning server provisioning process running as instance 1 on configuration set 0. In this case, you should start your directory integration and provisioning server as instance 2 with either the default configset=1 argument or using your custom created configuration set number.

    Check $ORACLE_HOME/ldap/log/odisrv0x.log. When the provisioning integration service is running, it logs to odisrv01.log. The directory synchronization service then logs to odisrv02.log.

  • Verify that the profile is enabled by using the Oracle Directory Integration and Provisioning Server Administration tool or diptester option 12.

  • Verify that trace files are being generated. The trace file can be found at: $ORACLE_HOME/ldap/odi/log/profilename.trc

    If no trace file is generated, then check the odisrv0x.log for possible problems in startup of the directory integration and provisioning server, as described earlier in this list.

  • Verify that correct syntax is used to start the directory integration and provisioning server. For example:

    oidctl connect=asdb server=odisrv instance=2 configset=1 flags="host=myhost port=3060" start
    
    
  • For debugging, verify that the value of the debug flag set to 63 when starting the directory integration and provisioning server, as follows:

    oidctl connect=asdb server=odisrv instance=2 configset=1 flags="host=myhost port=3060 debug=63" start
     
    
  • Edit the profile and set the debug level to 63 by using the Oracle Directory Integration and Provisioning Server Administration tool or diptester option 12.

  • Validate the all required parameters in the profile.


    See Also:


  • Verify that you are using the Oracle Internet Directory 10g (10.1.2) version of the Oracle Directory Integration and Provisioning Server Administration tool or Oracle Directory Manager to update the profile. Previous releases of these utilities display different information on the Profile tab pages and should not be used.

  • Verify that the third-party LDAP directory server is running by executing the following command:

    ldapbind -h ldap_host -p ldap_port -D account -w password
    
    
  • If the directory integration and provisioning server does not start or if it starts and then fails, then check the following:

    • The instance name and configset being used

    • Whether the flags="host=xxx port=xxxx" parameter is used with oidctl

    • The odisrv0x.log to see whether:

      • Whether the connector successfully started

      • Whether the password expired

    To re-register the connector, enter the following command:

    odisrvreg -p port -D cn=orcladmin -w passwd -h host
    

See Also:

MetaLink Note: 265397.1—Password Policy Expires available on Oracle MetaLink at http://metalink.oracle.com/

Sample Valid Trace Files in Debug Level 63 Mode

The following is the beginning and end portions of a valid sample trace file for an Active Directory connector synchronized addition operation:

-------------------------------------------------------------------------------
Trace Log Started at Tue Jun 08 11:22:25 EDT 2004
-------------------------------------------------------------------------------
Command exec succesful
LDAP URL : (activedir.oracle.com:389 administrator@oracle.com
LDAP Connection success
Applied ChangeNum : 28017Available chg num = 28019
Reader Initialised !!
LDAP URL : (sun1:3060 cn=odisrv+orclhostname=sun1,cn=odi,cn=oracle internet directory
LDAP Connection success
Writer Initialised!!
MapEngine Initialised!!
Filter Initialised!!
searchF : 
CHGLOGFILTER : (&(USNChanged>=28018)(USNChanged<=28022))
Search Time 8
Search Successful till # 28022
Search Changes Done
Changenumber uSNChanged: 28022
targetdn distinguishedName: CN=Test User56,CN=Users,DC=US,DC=ORACLE,DC=com
ChangeRecord : ----------
Changetype: 4
ChangeKey: CN=Test User56,CN=Users,DC=US,DC=ORACLE,DC=com
Attributes: 
Class: null Name: ou Type: null ChgType: 1 Value: [ ]
Class: null Name: objectGUID Type: null ChgType: 2 Value: [[B@d0a5d9]
 
...
 
Class: null Name: mail Type: null ChgType: 1 Value: [ ]
Class: null Name: displayname Type: null ChgType: 2 Value: [Test User56]
Class: null Name: cn Type: null ChgType: 2 Value: [Test User56]
Class: null Name: sn Type: null ChgType: 2 Value: [Test User56]
Class: null Name: krbprincipalname Type: null ChgType: 1 Value: [@ ]
Class: null Name: uid Type: null ChgType: 1 Value: [ ]
Class: null Name: orcluserprincipalname Type: null ChgType: 1 Value: [ ]
Class: null Name: orclsamaccountname Type: null ChgType: 2 Value: [$Test User56]
-----------
DN : CN=Test User56,cn=users,dc=us,dc=oracle,dc=com
Normalized DN : CN=Test User56,cn=users,dc=us,dc=oracle,dc=com
Processing modifyRadd Operation ..
Entry Not Found. Converting to an ADD op..
Processing Insert Operation ..
Performing createEntry..
Entry Added Successfully : CN=Test User56,cn=users,dc=us,dc=oracle,dc=com
Updated Attributes 
orclodipLastExecutionTime: 20040608112226
orclOdipSynchronizationStatus: Synchronization Successful
orclodipLastSuccessfulExecutionTime: 20040608112226

The following is the beginning and end portions of a valid sample trace file for an Active Directory connector synchronized deletion operation:

-------------------------------------------------------------------------------
 Trace Log Started at Wed Aug 18 09:10:05 EDT 2004
-------------------------------------------------------------------------------
Command exec succesful
LDAP URL : (oemfl-ad.us.oracle.com:389 administrator@oemad-orl.us.oracle.com
LDAP Connection success
Applied ChangeNum : 31940Available chg num = 31940
Reader Initialised !!
LDAP URL : (sun1.us.oracle.com:3060 cn=odisrv+orclhostname=sun1,cn=odi,cn=oracle internet directory
LDAP Connection success
Writer Initialised!!
MapEngine Initialised!!
Filter Initialised!!
searchF :
CHGLOGFILTER : (&(USNChanged>=31941)(USNChanged<=31941))
Search Time 10
Search Successful till # 31941
Search Changes Done
Changenumber uSNChanged: 31941
Deleted isDeleted: TRUE
Deleted isDeleted: TRUE
ChangeRecord : ----------
Changetype: 1
ChangeKey: *
Attributes:
Class: null Name: objectGUID Type: null ChgType: 3 Value: [[B@ece65]
 
...
 
Output ChangeRecord ChangeRecord : ----------
Changetype: 1
ChangeKey: *
Attributes:
Class: null Name: objectclass Type: null ChgType: 3 Value: [organizationalunit,
orclcontainer, orcladuser, orcluserv2, orcladgroup]
Class: null Name: krbprincipalname Type: null ChgType: 3 Value: [@ ]
Class: null Name: orclsamaccountname Type: null ChgType: 3 Value: [$ ]
Class: null Name: orclobjectguid Type: null ChgType: 3 Value: [2xR7Nas8UUKtzmPk0jpSFg==]
-----------
DN : *
Normalized DN : cn=TUser2007,cn=users,dc=us,dc=oracle,dc=com
Processing Delete Operation ..
Deleted entry Successfully : cn=TUser2007,cn=users,dc=us,dc=oracle,dc=com
Updated Attributes
orclodipLastExecutionTime: 20040818091005
orclOdipSynchronizationStatus: Synchronization Successful
orclodipLastSuccessfulExecutionTime: 20040818091005
 

The following is the beginning and end portions of a valid sample trace file for an Active Directory connector synchronized modify operation:

-------------------------------------------------------------------------------
 Trace Log Started at Wed Sep 29 09:40:18 EDT 2004
-------------------------------------------------------------------------------
Command exec succesful
LDAP URL : (oemfl-ad.us.oracle.com:389 administrator@oemad-orl.us.oracle.com
LDAP Connection success
Applied ChangeNum : 35322Available chg num = 35322
Reader Initialised !!
LDAP URL : (sun1.us.oracle.com:3060 cn=odisrv+orclhostname=sun1,cn=odi,cn=oracle internet directory
LDAP Connection success
Writer Initialised!!
MapEngine Initialised!!
Filter Initialised!!
searchF :
CHGLOGFILTER : (&(USNCreated>=35323)(USNCreated<=35323))
Search Time 7
Search Successful till # 35323
Search Changes Done
searchF :
CHGLOGFILTER : (&(USNChanged>=35323)(USNChanged<=35323)(USNCreated<=35322))
Search Time 15
Search Successful till # 35323
Changenumber uSNChanged: 35323
targetdn distinguishedName: CN=Test User111,CN=Users,DC=US,DC=ORACLE,DC=com
ChangeRecord : ----------
Changetype: 4
ChangeKey: CN=Test User111,CN=Users,DC=US,DC=ORACLE,DC=com
Attributes:
Class: null Name: distinguishedname Type: null ChgType: 1 Value: [ ]
Class: null Name: samaccountname,userprincipalname Type: null ChgType: 1 Value: [ ]
Class: null Name: userprincipalname Type: null ChgType: 1 Value: [ ]
 
...
 
 Output ChangeRecord ChangeRecord : ----------
Changetype: 4
ChangeKey: cn=TUser111,cn=users,dc=us,dc=oracle,dc=com
Attributes:
Class: null Name: objectclass Type: null ChgType: 3 Value: [orcluserv2, orcladuser, inetorgperson, person]
Class: null Name: orclObjectSID Type: null ChgType: 2 Value: [AQUAAAAAAAUVAAAAiqcyP8CFOF0VJa9HCAYAAA==]
Class: null Name: orclObjectGUID Type: null ChgType: 2 Value: [6uEo05+F/0CHj4PTpPCchQ==]
Class: null Name: mail Type: null ChgType: 2 Value: [Tuser111@oracle.com]
Class: null Name: displayName Type: null ChgType: 2 Value: [Test User111]
Class: null Name: cn Type: null ChgType: 2 Value: [TUser111]
Class: null Name: sn Type: null ChgType: 2 Value: [TUser111]
Class: null Name: krbPrincipalName Type: null ChgType: 1 Value: [@ ]
Class: null Name: uid Type: null ChgType: 2 Value: [TUser111]
Class: null Name: orclUserPrincipalName Type: null ChgType: 1 Value: [ ]
Class: null Name: orclSAMAccountName Type: null ChgType: 2 Value: [$TUser111]
Class: null Name: orclDefaultProfileGroup Type: null ChgType: 1 Value: [ ]
-----------
DN : cn=TUser111,cn=users,dc=us,dc=oracle,dc=com
Normalized DN : cn=TUser111,cn=users,dc=us,dc=oracle,dc=com
Processing modifyRadd Operation ..
Entry found. Converting To a Modify Operation..
Proceeding with checkNReplace..
Performing checkNReplace..
Naming attribute: cn
Naming attribute value: orclDefaultProfileGroup
Naming attribute value: orclSAMAccountName
Naming attribute value: orclUserPrincipalName
Naming attribute value: uid
Naming attribute value: krbPrincipalName
Naming attribute value: sn
Naming attribute value: cn
Naming attribute value: displayName
Naming attribute value: mail
Adding Attribute in OID : mail
Naming attribute value: orclObjectGUID
Naming attribute value: orclObjectSID
Total # of Mod Items : 1
Modified Entry Successfully : cn=TUser111,cn=users,dc=us,dc=oracle,dc=com
Replacing Attribute orclodipLastSuccessfulExecutionTime in the Profile with value : 20040929094018
Removed Existing attribute
RePopulated Attribute..
Updated Attributes
orclodipLastExecutionTime: 20040929094018
orclOdipSynchronizationStatus: Synchronization Successful
orclodipLastSuccessfulExecutionTime: 20040929094018

Troubleshooting Integration with Microsoft Active Directory

This section contains these topics:

Debugging the Active Directory Connector

You can debug the Active Directory connector by using the oditest and diptester utilities described in "Troubleshooting Synchronization".

To troubleshoot the Active Directory connector:

  • Run oditest and enter the profile name as the value of the directory synchronization profile argument

  • Examine the $ORACLE_HOME/ldap/odi/log/AgentChgImp.trc and $ORACLE_HOME/ldap/odi/log/AgentChgImp.aud files in a text editor for pertinent information

If more than one profile is enabled, then the diptester utility can be run against each of them.

Debugging Windows Native Authentication

Once you have configured Windows native authentication (see "Configuring Windows Native Authentication"), you can enable logging for this feature at run time. Open the opmn.xml file, located in $ORACLE_HOME/opmn/conf, and add the following parameter:

-Djazn.debug.log.enable = {true | false}

Assigning a value of true to the parameter enables debugging while assigning a value of false disables it.

The boldface text in the following example show where you should place the parameter in opmn.xml:

<process-type id="OC4J_SECURITY" module-id="OC4J">
  <environment>
    <variable id="DISPLAY" value="sun1.us.oracle.com:0.0"/>
    <variable id="LD_LIBRARY_PATH" value="/private/ora1012/OraHome1/lib"/>
  </environment>
  <module-data>
    <category id="start-parameters">
      <data id="java-options" value="-server -Djazn.debug.log.enable=true
      -Djava.security.policy=/private/ora1012/OraHome1/j2ee/OC4J_SECURITY/
      config/java2.policy -Djava.awt.headless=true -Xmx512m
      -Djava.awt.headless=true"/>
      <data id="oc4j-options" value="-properties"/>
    </category>
    <category id="stop-parameters">
      <data id="java-options" value="-Djava.security.policy=/private/ora1012/      
      OraHome1/j2ee/OC4J_SECURITY/config/java2.policy  -Djava.awt.headless=true"/>
    </category>

The log is written to the file OC4J~OC4J_SECURITY~default_island~1, found at $ORACLE_HOME/opmn/logs.

Troubleshooting the Microsoft Active Directory External Authentication Plug-in

If you are experiencing unknown errors, then you can enable plug-in debugging as explained in "Debugging the Windows NT External Authentication Plug-in"

Troubleshooting Integration with the SunONE Connector

You can debug the SunONE connector by using the oditest and diptester utilities described in "Troubleshooting Synchronization".

To troubleshoot the SunONE import connector:

To troubleshoot the SunONE export connector:

If more than one profile is enabled, then the diptester utility can be run against each of them.

Troubleshooting Error Messages and Other Problems

This section contains these topics:

Location of Error Messages

The Oracle directory integration and provisioning server stores error messages in the appropriate file, as described in "Location and Naming of Files".

Oracle Directory Integration and Provisioning Server Errors

This section provides solutions for errors and problems you may encounter with the Oracle directory integration and provisioning server.

PASSWORD POLICY ERROR :9000: GSL_PWDEXPIRED_EXCP.
Cause: Beginning with Oracle Internet Directory 10g (9.0.4), the default password expiry time, which is assigned to the pwdmaxage attribute, is set to 60 days.
Action: Do the following:
  1. You must first unlock the cn=orcladmin super user account before you can modify password policies. Use the oidpasswd utility to unlock the super user account as follows:

    oidpasswd connect=asdb unlock_su_acct=true
    OID DB user password:
    OID super user account unlocked successfully.
    
    

    This unlocks only the super user account, cn=orcladmin. Do not confuse this account with the cd=orcladmin account within the default realm cn=orcladmin,cn=users,dc=xxxxx,dc=yyyyy. They are two separate accounts.

  2. Launch an Oracle Internet Directory 10g (10.1.2) version of Oracle Directory Manager and navigate to Password Policy Management. You will see two entries: cn=PwdPolicyEntry and the password policy for your realm—for example, password_policy_entry,dc=acme,dc=com.

    Change the pwdmaxage attribute in each password policy to an appropriate value:

    • 5184000 = 60 days (default)

    • 7776000 = 90 days

    • 10368000 = 120 days

    • 15552000 = 180 days

    • 31536000 = 1 year


      Note:

      It is very important to change this value in both places.

  3. Launch the Oracle Directory Manager and navigate to the realm-specific orcladmin account. Find the userpassword attribute and assign a new value. You should then be able to launch any Oracle component that uses OracleAS Single Sign-On and log in as orcladmin.

  4. Rerun the odisrvreg utility to reset the randomly generated password for Directory Integration and Provisioning:

    odisrvreg -D cn=orcladmin -w welcome1 -p 3060
    Already Registered...Updating DIS password...
    DIS registration successful.
    
    
Cause: The directory integration and provisioning server needs re-registering.
Action: Re-register the connector:
odisrvreg -p port -D cn=orcladmin -w passwd

See Also:

MetaLink Note: 265397.1—Password Policy Expires available on Oracle MetaLink at http://metalink.oracle.com/

Provisioning Errors and Problems

This section provides solutions for provisioning errors and problems.

Unable to get the Entry from its GUID. Fatal Error...
Cause: The Oracle directory integration and provisioning server is attempting to retrieve an entry that has been deleted, but not yet purged.
Action: Update the tombstone purge configuration settings in the Garbage Collection Management node of Oracle Directory Manager.
LDAP connection failure.
Cause: Directory Integration and Provisioning failed to connect to the directory server.
Action: Check the connection to the directory server.

See Also:

The chapter on directory server administration in Oracle Internet Directory Administrator's Guide for information about directory server connections

LDAP authentication failure.
Cause: The provisioning profile is not able to connect to the LDAP server as administrator.
Action: Verify Oracle directory integration and provisioning server entry in the directory. Re-register the Oracle directory integration and provisioning server by using odisrvreg.
Initialization failure.
Cause: Problem in connecting to the directory server using JNDI.
Action: Examine the trace/audit file in $ORACLE_HOME/ldap/odi/log/profile_name.trc.
Database connection failure.
Cause: Problem connecting to the database with the given account information; either the database is not running or there is an authentication problem.
Action: Examine the trace/audit file in $ORACLE_HOME/ldap/odi/log/profile_name.trc.
Exception while calling SQL operation.
Cause: Problem in executing the package.
Action: Verify the package usability. Examine the trace/audit file in $ORACLE_HOME/ldap/odi/log/profile_name.trc.
Provisioning Profiles Not Getting Executed by the DIP Provisioning Server.
Cause: Provisioning profiles only execute when the Oracle directory integration and provisioning server is started with configuration set 0.
Action: Ensure that the Oracle directory integration and provisioning server has been started with the argument configset=0.
Unable to Connect to the Application Database.
Cause: The application database connection requirements in a provisioning profile may be incorrect.
Action: Use sqlplus to verify connectivity requirements.
USER/GROUP MODIFY and DELETE Events Not being consumed by the application.
Cause: The Oracle Provisioning Service first queries an application database about the existence of a user or group. If the application database responds with a negative value, then the user or group does not exist, and the event is not propagated to the application.
Action: Examine the trace/audit file in $ORACLE_HOME/ldap/odi/log/profile_name.trc to determine whether the user or group exists in the application database.
Subscription to Binary Attributes results in the Event propagation error.
Cause: Binary attributes propagation is not supported.
Action: Remove the binary attribute assignments from the event subscription in the provisioning profile.
Insufficient Access Rights to do "proxy" as the Application DN.
Cause: The Oracle Directory Integration and Provisioning server group has not been granted browse privilege by the application DN.
Action: Use the ldapmodify command to load the following ACIs, which grant browse privileges from the application DN to the Oracle Directory Integration and Provisioning group:
orclaci: access to attr=(*) by group="cn=odisgroup,cn=odi,cn=oracle internet directory"(read,write,search,compare)
orclaci: access to entry by group="cn=odisgroup,cn=odi,cn=oracle internet directory"(browse,proxy)
 
Insufficient access rights to use an application DN as proxy.
Cause: The Oracle Directory Integration and Provisioning server group has not been granted proxy privileges by the application DN.
Action: Use the ldapmodify command to load the following ACI, which grants proxy privileges from the application DN to the Oracle Directory Integration and Provisioning group:
orclaci: access to entry by group=" cn=odisgroup, cn=odi,cn=oracle internet directory" (browse,proxy)

Synchronization Errors and Problems

This section provides solutions for synchronization errors and problems.


See Also:

MetaLink Note: 276481.1—Troubleshooting OID DIP Synchronization Issues available on Oracle MetaLink at http://metalink.oracle.com/

LDAP: error code 50 - Insufficient Access Rights; remaining name 'CN=Users,dc=mycompany,dc=com'
Cause: The record target is not in a default container.
Action: Find the DST CHANGE RECORD. Check the ACIs for the target container. If they are blank, then use diptester option 13 to apply a known set of ACIs to the new container.
LDAP: error code 50 - Insufficient Access Rights; ACTIVECHGIMP MAPPING IMPORT OPERATION FAILURE; Agent execution successful, Mapping/import operation failure
Cause: By default the cn=Users,<default realm> contains the proper ACIs. However, this error can occur when trying to synchronize into a different container within the default realm
Action: Open the trace file, locate the change record that is causing the error, and then check the ACIs for the record's parent container. Apply the same ACIs to the target container.
Trace File Error: Not able to construct DN Output ChangeRecord ChangeRecord : Changetype: 1 ChangeKey: cn=users, dc=us,dc=oracle,dc=com Exception javax.naming. ContextNotEmptyException: [LDAP: error code 66 - Not Allowed On Non-leaf]; remaining name 'cn=users,dc=us,dc=oracle,dc=com' Missing mandatory attribute(s).
Cause: Problem with the mapping file.
Action: Follow the instructions in Oracle MetaLink Note: 261342.1—Understanding DIP Mapping available on Oracle MetaLink at http://metalink.oracle.com/.
Trace File Error: IPlanetImport:Error in Mapping Enginejava.lang.NullPointerException java.lang.NullPointerException at oracle.ldap.odip.engine.Connector.setValues(Connector.java:101).
Cause: The mapping file has not been loaded.
Action: In the Oracle Directory Integration and Provisioning Server Administration tool, verify that the Mapping tab contains the values from your mapping file. If your values are not available, then use diptester to reload the mapping file.
Cause: The orclcondirlastappliedchgnum attribute is null or has no value. This may occur if bootstrapping failed or if you manually populated Oracle Internet Directory and did not assign a value to the orclcondirlastappliedchgnum attribute.
Action: Verify that the orclcondirlastappliedchgnum attribute has a value. If not, then use diptester to set the orclcondirlastappliedchgnum attribute.
Trace File Error: Command exec succesful IPlanetImport:Error in Mapping Enginejava.lang.NullPointerException java.lang.NullPointerException at oracle.ldap.odip.engine.Connector.setValues(Connector.java:101) at oracle.ldap.odip.gsi.LDAPReader.initialise(LDAPReader.java:169) Updated Attributes orclodipLastExecutionTime: 20040601143204.
Cause: Missing LDAP port on connected directory URL attribute value (hostname:port).
Action: Specify the LDAP port in the connected directory URL attribute.
Trace File Error: LDAP URL : (xxxxxx.com:389<login credentials to 3rd party ldap server> LDAP Connection success ActiveChgImp:Error in Mapping EngineODIException: DIP_GEN_INITIALIZATION_EXCEPTION ODIException: DIP_GEN_INITIALIZATION_EXCEPTION at oracle.ldap.odip.util.DirUtils.getLastChgNum(DirUtils.java:48) at oracle.ldap.odip.gsi.LDAPReader.initAvailableChgKey(LDAPReader.java:719) at oracle.ldap.odip.gsi.LDAPReader.initialise(LDAPReader.java:212) at oracle.ldap.odip.engine.AgentThread.mapInitialise(AgentThread.java:327) at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:253) at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:149) ActiveChgImp:about to Update exec status Error in proxy connection : java.lang.NullPointerException.
Cause: Permissions and ownership of the files in $ORACLE_HOME/ldap/odi/conf should be owned by Oracle installer id.
Action: Use ldapmodify to fix the following two entries:
dn: orclODIPAgentName=profile_name,cn=subscriber profile,
  cn=changelog subscriber, cn=oracle internet directory 
changetype: modify 
replace: orclaci 
orclaci: access to attr = (*) by group="cn=odisgroup,cn=odi,cn=oracle 
  internet directory"  (read,write,search,compare) 
orclaci: access to entry by group="cn=odisgroup,cn=odi,cn=oracle 
  internet directory"  (browse,proxy) 

dn: orclodipAgentName=ActiveChgImp,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory 
orclodipagentconfiginfo:: W0lOVEVSRkFDRURFVEFJTFNdClBhY2thZ2U6IGdzaQpSZWFkZXI 6IEFjdGl2ZUNoZ1JlYWRlcgo= 

Note:

The preceding entry is a binary object representing an import profile for the ActiveChange Reader. If you are fixing an SunONE/iPlanet, or and EXPORT profile, then you must dump the orclodipagentconfiginfo attribute for the corresponding profile from a existing profile or another node.


See Also:

The following for information about LDAP error code 49 and Error 9000: GSL_PWDEXPIRED_EXCP:

Mapping tab in the Oracle Directory Integration and Provisioning Server Administration tool shows file name instead of mapping rules.
Cause: The absolute path was not included when the mapping file was loaded.
Action: Reload the map file using full absolute path. You can reload the map file using the Directory Integration and Provisioning Assistant (dipassistant) or diptester option 5.

Windows Native Authentication Error and Problems

This section provides solutions for errors and problems you may encounter when integrating Oracle Identity Management with Windows Native Authentication.

Internal Server error. Please contact your administrator.
Cause: Windows native authentication is misconfigured on the middle tier computer.
Action: Do the following:
  1. Check the opmn.log file for errors.

  2. Check ssoServer.log for errors.

  3. Make sure that the keytab file is located in the $ORACLE_HOME/j2ee/OC4J_SECURITY/config directory and that the principal name configured in jazn-data.xml is correct.

  4. Make sure that the single sign-on middle tier computer is properly configured to access the Key Distribution Center. See "Set Up a Kerberos Service Account for the OracleAS Single Sign-On Server".

Could not authenticate to KDC.
Cause: This error message may be invoked if the realm name in krb5.conf is incorrectly configured.
Action: Check the values default_realm and domain_realm in /etc/krb5/krb5.conf. Note that the realm name is case sensitive.
Your browser does not support the Windows Kerberos authentication or is not configured properly.
Cause: The user browser is not supported or is misconfigured.
Action: Follow the instructions in "Task 7: Configure the End User Browser".
"Access forbidden" or "HTTP error code 403" or "Windows Native Authentication Failed. Please contact your administrator."
Cause: These error messages have the same cause: the user entry cannot be found in Oracle Internet Directory. A local administrator working at a Windows desktop may be trying to access a single sign-on partner application whose entry may not have been synchronized with Oracle Internet Directory.
Action: Determine whether the user entry exists in the directory and if the Kerberos principal attributes for the user are properly synchronized from Microsoft Active Directory.
The windows login dialog box (with username, password, and domain fields in it) comes up when accessing the partner application.
Cause: The single sign-on server was not able to authenticate the Kerberos token because the corresponding user entry could not be found in Oracle Internet Directory.
Action: Add the user entry to the directory.
Single sign-on server fails to start. Log file contains an exception bearing the message "Credential not found."
Cause: The parameter kerberos-servicename may not be configured correctly.
Action: Do the following:
  1. Make sure that kerberos-servicename is configured correctly in the files orion-application.xml and jazn-data.xml. In orion-application.xml, the format for this parameter is HTTP@sso.mycompany.com. In the jazn-data.xml, the format is HTTP/sso.mycompany.com.

  2. Check ssoServer.log for errors.

  3. Make sure that the keytab file is located in the $ORACLE_HOME/j2ee/OC4J_SECURITY/config directory and that the principal name configured in jazn-data.xml is correct.

  4. Make sure that the single sign-on middle tier computer is configured to access the Kerberos domain controller. See "Set Up a Kerberos Service Account for the OracleAS Single Sign-On Server".

Microsoft Active Directory and SunONE Directory Server Synchronization Errors and Problems

This section provides solutions to synchronization errors and problems that can occur with Microsoft Active Directory and SunONE Directory Server.

LDAP: error code 50 - Insufficient Access Rights.
Cause: The odi agent orclODIPAgentName=IPlanetImport,cn=subscriber profile,cn= changelog subscriber,cn=oracle internet directory does not have full read/write access to the synchronized entries in Oracle Internet Directory. Because the cn=oracleDASCreateUser,cn=groups,cn=oraclecontext,identity_management_realm group will already have the required ACLs defined, this entry should be a member of this group.
Action: In this case, <subscriber DN> is set to identity_management_realm. You must add the orclODIPAgentName=IPlanetImport,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory user entry to the cn=oracleDASCreateUser,cn=groups,cn=oraclecontext,identity_management_realm group, so that it will have the required ACL access to perform the updates: In Oracle Directory Manager, navigate through: Entry Management ->dc=com,identity_management_realm,cn=oraclecontext-> cn=groups-> cn=oracleDASCreateUser. From here, against the attribute 'uniquemember' add: orclODIPAgentName=IPlanetImport,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory.
Add and change operations are successful, but delete operations fail without being recorded in the trace file.
Cause: In SunONE/iPlanet: Tombstones are not enabled.
Action: Verify that tombstones are enabled as described in Oracle MetaLink Note: 272226.1, available on Oracle MetaLink at http://metalink.oracle.com/
Cause: In Microsoft Active Directory: The account used for the profile is not a member of the DIR SYNCH ADMIN group. This only occurs if you are not using a Microsoft Active Directory administrator account.
Action: Install the appropriate patch from Microsoft.
Data synchronization problems encountered after configuring Oracle Directory Integration import or export connectors to third-party LDAP directories.
Cause: Determine the cause by running the oditest utility.
The Oracle Internet Directory profile in Oracle Directory Manager shows "synchronization successful" yet no changes show up in the directory.
Cause: The synchronization interval is set to occur too infrequently to be of use during testing. By default, the synchronization interval is set to occur every 60 seconds. However, you may increase the synchronization interval for better performance. For example, you may increase your synchronization interval to a value such as 300 seconds (5 minutes) or 600 seconds (10 minutes).
Action: Follow these steps to decrease your synchronization interval:

WARNING:

Decreasing your synchronization interval may significantly impact the performance of your connected directory server. Before changing your synchronization interval, try debugging your connector with the oditest utility. If you do change your synchronization interval, be sure to reset it to its original value once you are finished with your testing procedures.


  1. In the Oracle Directory Integration and Provisioning Server Administration tool, in the navigator pane, navigate to the Integration Server and modify the Scheduling Interval attribute in the profiles to 20 seconds.

  2. Use the odisrv command to stop the directory integration and provisioning server and restart it with the parameter debug=63.

  3. Add a test entry in your connected directory.

  4. In Oracle Internet Directory, change to the $ORACLE_HOME/ldap/odi/log directory and use the cat command to display the file ActiveChgImp.trc. When the directory integration and provisioning server wakes up and processes the record from the connected directory changelog, you will see the details listed in the ActiveChgImp.trc file.

  5. Examine the trace file ActiveChgImp.trc for possible clues as to what is actually taking place: You should see the handshake/login to the connected directory server, then the change being captured and reformatted according to the mapping rules, and finally the change being attempted in Oracle Internet Directory. If there are handshake or mapping problems they will appear in this file.

A common mistake is to set the Connect Directory Account DN to Administrator. This field must contain the entire distinguished name of the Active Directory administrator—for example:

cn=Administrator,cn=Users,dc=myoracle,dc=com

The first domain component is the value of the third field of the Windows Login Page: User Name, Password, Log on to.

The following ldapsearch commands may be helpful in identifying problems with the configuration.

To check the default identity management realm:

ldapsearch -h host; -p port; -D cn=orcladmin -w password; -b "cn=common,cn=products,
cn=oraclecontext" -L -s base "objectclass=*"; orcldefaultsubscriber

To dump the directory integration and provisioning server configuration set:

ldapsearch -p port; -D cn=orcladmin -w password -b cn=instance1,cn=odisrv,
cn=subregistrysubentry -s base -v "objectclass=*"

To check profiles:

ldapsearch -p port -D cn=orcladmin -w password -b "orclODIPAgentName=ActiveImpChg,
cn=subscriber profile,cn=changelog Subscriber,cn=oracle internet directory" -s sub 
objectclass=*

To check the agent credentials:

Note: This command returns the password in clear text only if you run it using orcladmin credentials.

ldapsearch -p port -D cn=orcladmin -w password -b "orclodipagentname=ActiveImpChg,
cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory"
-s sub "objectclass=*"

Bootstrap Error: DIP_GEN_AUTHENTICATION_FAILURE when trying to Synchronize Active Directory with Oracle Internet Directory
Cause: Invalid credentials.
Action: Check the synchronization profile and ensure that it contains the proper credentials to log in to the Active Directory server.

Need More Help?

You can find more solutions on Oracle MetaLink, http://metalink.oracle.com. If you do not find a solution for your problem, log a service request.


See Also: