Environment
Novell NetWare NetWare 6.5
Situation
DirXML DSTrace screen shows the following Java errors:
Message: Code(-9010) An exception occurred: java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2165)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
at
java.io.ObjectInputStream.
at jdbm.recman.RecordManager.byteArrayToObject(RecordManager.java:293)
at jdbm.recman.RecordManager.fetchObject(RecordManager.java:236)
at jdbm.helper.ObjectCache.fetchObject(ObjectCache.java:104)
at jdbm.btree.BTree.getRoot(BTree.java:452)
at jdbm.btree.BTree.browse(BTree.java:395)
at com.novell.nds.dirxml.engine.WorkManager.getFirstFromBTree(WorkManager.java:222)
at com.novell.nds.dirxml.engine.WorkManager.getWork(WorkManager.java:340)
at com.novell.nds.dirxml.engine.Driver.processWork(Driver.java:984)
at com.novell.nds.dirxml.engine.DriverEntry.processWork(DriverEntry.java:911)
at com.novell.nds.dirxml.engine.DriverEntry.eventLoop(DriverEntry.java:659)
at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:505)
at java.lang.Thread.run(Thread.java:534)
or
Message: Code(-9010) An exception occurred: java.io.StreamCorruptedException
at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2347)
at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2380)
at java.io.ObjectInputStream$BlockDataInputStream.skipBlockData(ObjectInputStream.java:2285)
at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java:1795)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1519)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at jdbm.btree.BPage.readExternal(BPage.java:718)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1686)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1644)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at jdbm.recman.RecordManager.byteArrayToObject(RecordManager.java:294)
at jdbm.recman.RecordManager.fetchObject(RecordManager.java:236)
at jdbm.helper.ObjectCache.fetchObject(ObjectCache.java:104)
at jdbm.btree.BTree.getRoot(BTree.java:452)
at jdbm.btree.BTree.browse(BTree.java:395)
at com.novell.nds.dirxml.engine.WorkManager.getFirstFromBTree(WorkManager.java:222)
at com.novell.nds.dirxml.engine.WorkManager.getWork(WorkManager.java:340)
at com.novell.nds.dirxml.engine.Driver.processWork(Driver.java:984)
at com.novell.nds.dirxml.engine.DriverEntry.processWork(DriverEntry.java:911)
at com.novell.nds.dirxml.engine.DriverEntry.eventLoop(DriverEntry.java:659)
at com.novell.nds.dirxml.engine.DriverEntry.run(DriverEntry.java:505)
at java.lang.Thread.run(Thread.java:534)
.Resolution
In the SYS:\_NETWARE directory (the same place where the cache files are kept)there should be two files dx*.lg and dx*.db where * is the entry id ofthe driver object in decimal form. In order to translate the appropriate entry ID into hexidecimal form see the following TID:
Which TAO file in the NetWare directory corresponds with the DirXML Driver (TID:3514553)
If you shut down the
driver and then delete (or rename, copy to new location)
thesetwo
files you should be able to come up without the error. To delete,
copy, or rename files in the _NETWARE directory, use TOOLBOX.NLM,
CPQFM.NLM or JCMD.NLM. (On NetWare 6.5 servers you may use TBX.NLM
if it was installed by default.)
Also, ifyoudisable and reeanable the driver these will be deleted and recreated. However, be mindful if you disable and reenable the driver, it will cause a resync to occur on all objects.
Either one of these could cause some things to get lost, primarilyanything that was written back from the publisher channel to theapplication that hadn't yet completed.
Additional Information
Using TOOLBOX.NLM on a NetWare server requires the use of the -NL switch. This allows you to access the local SYS:_NETWARE directory, but you will not be able to access resources external to the server.
Warning: Use great care when accessing the SYS:_NETWARE directory. A misstep can cause irreversible damage.
On a Linux server the dx*.db and dx*.lg files are in /var/nds/dib.
For info, the dx_*.db and the dx*.lg files are for the
eDirectory driver, the *jdbc
Formerly known as TID# 10094972