2.1 Before You Install

2.1.1 Driver Prerequisites

The Identity Manager Driver for JDBC 3.5.1 requires the following:

  • Novell® Identity Manager 3.5.1 installed on the server or an Identity Manager 3.5.1 Remote Loader

  • Java Virtual Machine (JVM*) 1.4 or later

  • A supported third-party JDBC driver

2.1.2 Known Issues

  • Identity Vault Time and Timestamp syntaxes are inadequate for expressing the range and granularity of their database counterparts. This is a publication problem because database time-related types typically have a wider range and greater degree of granularity (typically nanoseconds). The converse is not true. For more information, see Time Syntax.

  • The Driver for JDBC is unable to parse proprietary database time stamp formats. Some databases, such as Sybase* and DB2*, have proprietary time stamp formats that the java.sql.Timestamp class can’t parse. When synchronizing time stamp columns from these databases, the Driver for JDBC, by default, assumes time stamp values placed in the event log table are in ODBC canonical format (that is, yyyy-mm-dd hh:mm:ss.fffffffff). The recommended method for enabling the Driver for JDBC to handle proprietary database time stamp formats is to implement a custom DBTimestampTranslator class. This interface is documented in the Javadoc Tool that ships with the Driver for JDBC. Using this approach avoids the problem of reformatting time stamps in the database before they are inserted into the event log table or reformatted them in style sheets. The Driver for JDBC ships with default implementations for the native DB2 time stamp format and the Sybase style 109 time stamp format.

  • Statements executed against the database server might block indefinitely.

    Typically, blocking is caused by a database resource being exclusively locked. Because the locking mechanisms and locking SQL vary by database, the general solution to this problem is to implement a custom DBLockStatementGenerator class. For additional information, see Lock Statement Generator Class. The driver for JDBC ships with a default implementation for Oracle.

    Many factors can cause blocking. To mitigate the likelihood of blocking, we recommend that you do not set the Transaction Isolation Level parameter to a level greater than read committed.

    The JDBC interface defines a method java.sql.Statement.setQueryTimeout(int):void that allows a statement to time out after a specified number of seconds. Unfortunately, implementations of this method between third-party JDBC drivers range from not being implemented to having bugs. For this reason, this method was deemed unsuitable as a general-purpose solution.

2.1.3 Limitations

  • The Driver for JDBC does not support the use of delimited (quoted) database identifiers (for example, “names with spaces”).

  • JDBC 2 data types are not supported, with the exception of Large Object data types (LOBs) such as CLOB and BLOB.

  • JDBC 3 data types are not supported.

  • PostgreSQL does not support <check-object-password> events. Authentication is controlled by manually inserting entries into the pg_hba.conf file.

2.1.4 Placing Jar Files

The following tables identify the paths to place JDBC driver jar files on an Identity Manager or Remote Loader server assuming default installation paths.

Identity Manager File Paths

The following table identifies where to place JDBC driver jar files on an Identity Management server, by platform.

Table 2-1 Locations for jar Files: Identity Manager Server


Directory Path



Solaris, Linux, or AIX

/usr/lib/dirxml/classes (pre-eDirectory 8.8) /opt/novell/eDirectory/lib/dirxml/classes (eDirectory 8.8)

Windows NT/2000


Remote Loader File Paths

The following table identifies where to place JDBC driver jar files on a Remote Loader server, by platform.

Table 2-2 Locations for jar Files: Remote Loader


Directory Path

Solaris, Linux, or AIX

/usr/lib/dirxml/classes (pre-eDirectory 8.8) /opt/novell/eDirectory/lib/dirxml/classes (eDirectory 8.8)

Windows NT/2000