Environment
Novell Identity Manager
Novell Identity Manager Driver Situation
After upgrading eDirectory from 8.7.3.x to 8.8.x the JDBC driver
will not start. An error similar to the following (though not
exactly the same) will appear:
Status:
Fatal
Message: Code(-9005) The driver returned a "fatal" status indicating that the driver should be shut down. Detail from driver: <description>Unable to load third-party JDBC driver: 'oracle.jdbc.driver.OracleDriver'.</description>
<jdbc:exception jdbc:class="java.lang.ClassNotFoundException" xmlns:jdbc="urn:dirxml:jdbc">
<jdbc:message>oracle.jdbc.driver.OracleDriver</jdbc:message>
</jdbc:exception>
Message: Code(-9005) The driver returned a "fatal" status indicating that the driver should be shut down. Detail from driver: <description>Unable to load third-party JDBC driver: 'oracle.jdbc.driver.OracleDriver'.</description>
<jdbc:exception jdbc:class="java.lang.ClassNotFoundException" xmlns:jdbc="urn:dirxml:jdbc">
<jdbc:message>oracle.jdbc.driver.OracleDriver</jdbc:message>
</jdbc:exception>
If other drivers exist they may start depending on whether or
not they are affected by a similar issue.
Resolution
This is caused by the change to the location of the
'dirxml/classes' directory when eDirectory was upgraded from 8.7.x
to 8.8.x on a Linux/Unix platform. All the needed JAR files
are copied over to the new location except for any non-Novell files
which were used by the driver configuration. NetWare is not
affected as the file locations for classes do not change between
eDirectory versions. JDBC drivers are especially affected by
this as they always have a third-party JAR file provided by the
database vendor (ojdbc14.jar for Oracle, jtds.jar for MSSQL,
mysql.jar for MySQL, etc.). Any other driver can also be
affected if it uses non-standard classes in the driver
configuration for special operations as determined by the
administrator. Any class used by IDM but that was not shipped
as part of the IDM engine may be the cause for this issue.
To fix the problem copy over the missing JAR file from the old
/usr/dirxml/classes directory to the new
/opt/novell/eDirectory/lib/dirxml/classes directory. Once
done the driver should start though if it does not then try
restarting eDirectory.
To determine which file is missing search through each JAR
file in the original 'classes' directory and find the one that has
the missing class which is listed in the error message. A
simple command to search for a given class ('ClassName') within a
single JAR file follows:
unzip -t
/path/to/the/file.jar | grep ClassName
This command only does one file at a time. Usually the
old classes directory will have all the jar files removed except
for the custom ones so there are only a few to check.