8.2 Driver Load Errors

If the driver does not load, check DSTrace for the error messages.

8.2.1 JCO2

java.lang.ClassNotFoundException:com.novell.nds.dirxml.driver.SAPShim. SAPDriver Shim

This is a fatal error that occurs when SAPShim.jar is not installed properly. Ensure that the file is in the proper location for either a local or Remote Loader configuration.

java.lang.ClassNotFoundException:com.novell.nds.dirxml.drivers.SAPShim. SAPDriver Shim

This is a fatal error that occurs when the class name for the SAPShim.jar is incorrect. Ensure that the Java class name is set on the Driver Module tab in a local installation and that the -class parameter is set in a Remote Loader configuration.

The proper class name is com.novell.nds.dirxml.driver.SAPShim.SAPDriverShim.

8.2.2 JCO3

java.lang.ClassNotFoundException:com.novell.nds.dirxml.driver.SAPHRShim. SAPDriver Shim

This is a fatal error that occurs when SAPHRShim.jar is not installed properly. Ensure that the file is in the proper location for either a local or Remote Loader configuration.

java.lang.ClassNotFoundException:com.novell.nds.dirxml.drivers.SAPHRShim. SAPDriver Shim

This is a fatal error that occurs when the class name for the SAPHRShim.jar is incorrect. Ensure that the Java class name is set on the Driver Module tab in a local installation and that the -class parameter is set in a Remote Loader configuration.

The proper class name is com.novell.nds.dirxml.driver.SAPHRShim.SAPDriverShim.

Error Occurs when Uninstalling the Driver

If you have installed the SAP HR driver on a server that does not have a Java Virtual Machine (JVM) installed on it, you receive the following error when trying to uninstall the driver.

No Java virtual machine could be found from your PATH
environment variable. You must install a VM prior to
running this program.

The problem only occurs if you install the SAP HR Management (JCO3) driver on a server that does not have Identity Manager or the Remote Loader installed on it.

The work around on Linux:

  1. Export PATH=<JAVA-HOME-PATH>/bin/:$PATH.

  2. Run the Castor Uninstall script where the JAVA-HOME-PATH is the JAVA or the JRE install location.

The work around on Windows:

From the command prompt, go to the SAP uninstaller location and run the following command:

“Uninstall Novell Identity Manager Drivers for SAP.exe” LAX_VM "<JAVA-HOME-PATH>\bin\java.exe"

where the JAVA-HOME-PATH is the JAVA or the JRE install location.

Error DestinationDataProvider already registered

The error DestinationDataProvider already registered occurs, if you are running an SAP HR driver for JCO3 and an SAP User Management driver for JCO3 on the same Metadirectory engine.

The fix is to run the SAP HR driver and the SAP User Management driver with the Remote Loader. Each driver can register as a separate instance in JCO when the drivers are running with the Remote Loader. If the drivers are running locally, JCO uses the same instance for the drivers and that is what causes the error.

Here is a sample of the error:

DirXML Log Event -------------------
     Driver:   \IDMDT-RRGIRISH\n\test\SAP-HR
     Status:   Error
     Message:  Code(-9010) An exception occurred:
java.lang.IllegalStateException: DestinationDataProvider already registered
[com.novell.nds.dirxml.driver.sapumshim.RFCJCoDestinationProvider]
    at
com.sap.conn.jco.rt.RuntimeEnvironment.setDestinationDataProvider(RuntimeEnvironment.java:132)
    at
com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:216)
    at
com.novell.nds.dirxml.driver.SAPHRShim.BapiCommon.registerJCOProviders(BapiCommon.java:509)
    at
com.novell.nds.dirxml.driver.SAPHRShim.SAPDriverShim.init(SAPDriverShim.java:110)
    at com.novell.nds.dirxml.engine.Driver.startShim(Driver.java:1314)
    at com.novell.nds.dirxml.engine.Driver.initialize(Driver.java:260)
    at com.novell.nds.dirxml.engine.Driver.<init>(Driver.java:232)
    at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:551)
    at java.lang.Thread.run(Thread.java:619)