Clearing Driver Cache & State files - Code(-9070) Unable to start DirXML driver

  • 7024876
  • 21-Oct-2020
  • 21-Oct-2020

Environment

Identity Manager 4.8
Identity Manager Driver - NDS / eDir

Situation

eDir Driver will not startup.   Driver trace ends abnormally with no errors.
The following errors are see in the driver set log during the driver startup.

Code(-9010) An exception occurred: java.lang.NullPointerException
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.cleanup(DriverPSStatusCache.java:325)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.initializeDB(DriverPSStatusCache.java:95)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.<init>(DriverPSStatusCache.java:60)
    at com.novell.nds.dirxml.engine.DriverEntry.<init>(DriverEntry.java:182)
    at com.novell.nds.dirxml.engine.DriverEntry.startDriver(DriverEntry.java:114)
    at com.novell.nds.dirxml.engine.DriverEventMonitor$DriverStateHandler.handleEvent(DriverEventMonitor.java:274)
    at com.novell.nds.events.EventNotification.processEvent(EventNotification.java:845)
    at com.novell.nds.events.EventNotification.processEvents(Native Method)
    at com.novell.nds.events.EventNotification.access$500(EventNotification.java:56)
    at com.novell.nds.events.EventNotification$EventThread.run(EventNotification.java:1149)
    at java.lang.Thread.run(Thread.java:748)

No object name provided.

Code(-9010) An exception occurred: com.microfocus.database.DBException: createOrOpenMap:RetCode:49186
    at com.microfocus.database.zoomdb.jni.MapInterface.createOrOpenMap(Native Method)
    at com.microfocus.database.zoomdb.hashmap.HashMapImpl.mapCreateOrOpen(Unknown Source)
    at com.microfocus.database.zoomdb.map.MapImpl.open(Unknown Source)
    at com.microfocus.database.zoomdb.map.MapHandler.open(Unknown Source)
    at com.microfocus.database.zoomdb.HashMapMakerImpl.make(Unknown Source)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.openBTree(DriverPSStatusCache.java:202)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.initializeDB(DriverPSStatusCache.java:91)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.<init>(DriverPSStatusCache.java:60)
    at com.novell.nds.dirxml.engine.DriverEntry.<init>(DriverEntry.java:182)
    at com.novell.nds.dirxml.engine.DriverEntry.startDriver(DriverEntry.java:114)
    at com.novell.nds.dirxml.engine.DriverEventMonitor$DriverStateHandler.handleEvent(DriverEventMonitor.java:274)
    at com.novell.nds.events.EventNotification.processEvent(EventNotification.java:845)
    at com.novell.nds.events.EventNotification.processEvents(Native Method)
    at com.novell.nds.events.EventNotification.access$500(EventNotification.java:56)
    at com.novell.nds.events.EventNotification$EventThread.run(EventNotification.java:1149)
    at java.lang.Thread.run(Thread.java:748)

Code(-9010) An exception occurred: java.lang.NullPointerException
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.cleanup(DriverPSStatusCache.java:325)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.killDB(DriverPSStatusCache.java:112)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.handleIt(DriverPSStatusCache.java:306)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.<init>(DriverPSStatusCache.java:64)
    at com.novell.nds.dirxml.engine.DriverEntry.<init>(DriverEntry.java:182)
    at com.novell.nds.dirxml.engine.DriverEntry.startDriver(DriverEntry.java:114)
    at com.novell.nds.dirxml.engine.DriverEventMonitor$DriverStateHandler.handleEvent(DriverEventMonitor.java:274)
    at com.novell.nds.events.EventNotification.processEvent(EventNotification.java:845)
    at com.novell.nds.events.EventNotification.processEvents(Native Method)
    at com.novell.nds.events.EventNotification.access$500(EventNotification.java:56)
    at com.novell.nds.events.EventNotification$EventThread.run(EventNotification.java:1149)
    at java.lang.Thread.run(Thread.java:748)

Code(-9010) An exception occurred: java.lang.NullPointerException
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.cleanup(DriverPSStatusCache.java:325)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.initializeDB(DriverPSStatusCache.java:95)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.handleIt(DriverPSStatusCache.java:307)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.<init>(DriverPSStatusCache.java:64)
    at com.novell.nds.dirxml.engine.DriverEntry.<init>(DriverEntry.java:182)
    at com.novell.nds.dirxml.engine.DriverEntry.startDriver(DriverEntry.java:114)
    at com.novell.nds.dirxml.engine.DriverEventMonitor$DriverStateHandler.handleEvent(DriverEventMonitor.java:274)
    at com.novell.nds.events.EventNotification.processEvent(EventNotification.java:845)
    at com.novell.nds.events.EventNotification.processEvents(Native Method)
    at com.novell.nds.events.EventNotification.access$500(EventNotification.java:56)
    at com.novell.nds.events.EventNotification$EventThread.run(EventNotification.java:1149)
    at java.lang.Thread.run(Thread.java:748)

Code(-9070) Unable to start DirXML driver <\SERVICES\system\DriverSet\eDir-Driver: java.lang.NullPointerException
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.loadCachedDatafromBTreeMap(DriverPSStatusCache.java:272)
    at com.novell.nds.dirxml.engine.DriverPSStatusCache.<init>(DriverPSStatusCache.java:75)
    at com.novell.nds.dirxml.engine.DriverEntry.<init>(DriverEntry.java:182)
    at com.novell.nds.dirxml.engine.DriverEntry.startDriver(DriverEntry.java:114)
    at com.novell.nds.dirxml.engine.DriverEventMonitor$DriverStateHandler.handleEvent(DriverEventMonitor.java:274)
    at com.novell.nds.events.EventNotification.processEvent(EventNotification.java:845)
    at com.novell.nds.events.EventNotification.processEvents(Native Method)
    at com.novell.nds.events.EventNotification.access$500(EventNotification.java:56)
    at com.novell.nds.events.EventNotification$EventThread.run(EventNotification.java:1149)
    at java.lang.Thread.run(Thread.java:748)

Resolution

Resetting the driver cache and clearing the driver state file(s) allowed the driver to start

1.   Get the Object ID for the driver using iMonitor (https://IPAddressOfServer:8030/nds).   Browse down to the driver object and get the object ID.
2.   Convert that ObjectID from Hex to Dec.   (using windows calc, or whatever)
3.   Look in the eDirectory dib directory (var/opt/novell/eDirectory/data/dib by default) for all files with that name in them.   (ls *12345*.*)   You should see a .TAO file and other file(s) with that value in the filename.
4.   Using iManager, edit the properties of the driver and disable the driver.     That will remove the .TAO file.
5.   Delete the other file(s) with the value in their name.    Now a directory listing should show no files.  (ls *12345*.*)
6.   Re-enable the driver by setting it to manual start, and check the box to do not do a resync and save
7.   Try to start the driver.