Troubleshooting Tivoli Directory Integrator

If you experience problems when using IBM® Tivoli® Directory Integrator to work with Profiles data, explore the different trace areas available for Profiles to find information that might help to identify and resolve the problem.

About this task

The Tivoli® Directory Integrator solution used to perform actions on your Profiles deployment is made up of several interconnected components. When you are trying to determine the cause of an error, you might first need to determine which architectural layer is likely to be involved in the error, before you enable tracing for a specific component to resolve the problem.

Profiles-specific output can come from the Tivoli® Directory Integrator configuration (profiles_tdi.xml) or from the component JAR files that are part of the solution. The JAR files contain business-layer functionality that is shared by the Profiles web application as well the Profiles TDI solution. Adjusting trace levels for these back-end components is very similar to the process used for the web application, and the same class hierarchical subsets can be used to view different tracing level outputs.

For more detailed information about determining the cause of problems with Tivoli® Directory Integrator, refer to the following web page: http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=/com.ibm.IBMDI.doc_7.1/pdguide.htm

Procedure

Here are some general tips for troubleshooting issues that you might encounter when using Tivoli® Directory Integrator to work with profile data.
  • Enable trace logging for Tivoli® Directory Integrator to help you determine whether processes are running correctly.

    Tracing for the Tivoli® Directory Integrator processes is similar to tracing for WebSphere® Application Server. The trace output is recorded in the ibmdi.log file in the tdi_installation_directory\logs directory.

    Trace settings are configured in the etc\log4j Java logging component. The following tracing levels are available, in order of lowest to highest severity:
    • ALL
    • TRACE
    • DEBUG
    • INFO
    • WARN
    • ERROR
    • FATAL
    • OFF
    When a given level is enabled, all levels that are lower in severity are automatically enabled. For more information about how to configure tracing, refer to the following web page: http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.IBMDI.doc_7.1/adminguide84.htm#wq553
    Note: Depending on the tracing level enabled, the output can be very lengthy, so try to perform small operations only when tracing is enabled.

    Profiles service layer logging

    If you are troubleshooting a Profiles or Tivoli® Directory Integrator problem and are unsure about the cause of the problem, the best strategy is to start with a general trace setting at the lowest severity level. If you run a targeted task at a low severity setting, then you might get more information about the problem to help narrow down the trace configuration. The most general trace setting to use to encompass the set of Profiles service classes is:
    log4j.logger.com.ibm.lconn.profiles=ALL
    To confine tracing to just the Tivoli® Directory Integrator operations, include the following line in the etc\log4j.properties file. The classes in this place in the hierarchy are primarily used as the interface between the assembly lines and connectors and the service layer. This level of tracing might also help identify issues in the calling Tivoli® Directory Integrator constructs.
    log4j.logger.com.ibm.lconn.profiles.api.tdi=ALL
    You might also want to enable event log tracing. Whenever database operations are performed, they are recorded in the event log. By enabling tracing at this level, you can see indirectly what was done via the service level API to the database. To enable event log tracing, include the following line in the etc\log4j.properties file:
    log4j.logger.com.ibm.lconn.profiles.internal.service=ALL
    Note: This setting is very verbose, so be sure to enable it for targeted operations.

    Database layer logging

    It is often useful to enable tracing at the database layer to troubleshoot problems. To enable database tracing, include the following line in the etc\log4j.properties file:
    log4j.logger.java.sql=ALL
  • Examine the information in the different log files in the logs directory.

    The log files produced by running Profiles Tivoli® Directory Integrator assembly lines are all stored in the logs subdirectory of the solution. Most assembly lines create a log file that is specific to the assembly line, for example, PopulateDBFromDNFile.log or SyncUpdates.log.

    When a task is run at a subsequent time, based on the logging implementation of the assembly line, the logs are either renamed with an incremented trailing digit or named with a date suffix to ensure that previous logs are preserved.

    All other output, in addition to some assembly-line output, is recorded in the logs\ibmdi.log file. Standard output and error information is recorded in this file by default, but you can modify this configuration in the etc\log4j.properties file. For more information, refer to theIBM Tivoli Directory Integrator product documentation.

  • Use the debug settings in the Log4J.properties file. For more information about the debug settings in the file, refer to the Log4J.properties topic in the TDI product documentation.
  • Set the value of the source_ldap_debug property in the profiles_tdi.properties file to true as follows.
    source_ldap_debug=true
    When set to true, this property prints additional debug information to the ibmdi.log file. You can use this property to track issues and capture more detailed information related to mapping and data validation in the log file.
    Setting this property to true provides two types of information:
    • Mapping details relating to the LDAP and Profiles databases.

      By checking this information, you can find out if you have any incorrect attribute mappings.

    • The validation result of each attribute

      By checking this information, you can find out which field did not pass the validation and verify the value of this field.

  • Examine any error messages that you see.
    The prefix of the error message indicates which component the error message is associated with. For example, the CLFRN prefix is used to identify error messages from all Profiles components. The CTGDIS prefix is used to identify error messages associated with Tivoli® Directory Integrator. You might also see error messages from other components in the log files. To find out more about these error messages, refer to the Error codes section of the product documentation.

    In addition to the prefix identifier, the last letter of the error message code indicates the severity of the message. For example, a code ending with an I is an informational message. Error and warning codes are designated by E and W respectively.

  • Tivoli® Directory Integrator Configuration Editor port issue: If you see the message Invalid value specified for 'api.remote.naming.port' when working with the Tivoli® Directory Integrator Configuration Editor, you can resolve the issue by manually setting the api.remote.naming.port in the solution.properties file located in the TDI_solution _directory.
  • Linux® 32 -bit issue: Note that the Linux® 32-bit system is not officially supported by IBM® Connections. If you are using a Tivoli® Directory Integrator solution without any specified setting on a Linux® 32-bit platform, you will experience issues with your processor becoming unresponsive. In addition, you will not be able to populate the Profiles database using the Population Wizard or the solution script provided by Tivoli® Directory Integrator. As a workaround, you need to edit the ibmdisvr shell script located in the TDI_installation_directory as follows:
    "$TDI_JAVA_PROGRAM" $TDI_MIXEDMODE_FLAG -Xms256M -Xmx1024M -Xnojit -cp "$TDI_HOME_DIR/IDILoader.jar" "$LOG_4J" com.ibm.di.loader.IDILoader com.ibm.di.server.RS "$@"