Environment
Identity Manager 4.x
Identity Manager Driver - JDBC
Identity Manager Driver - JDBC
Situation
When attempting to start a JDBC Driver connecting to a Oracle 12c database the driver shuts down and the following error is received in the driver startup log. (level 3 to file) java.io.IOError: java.io.EOFException
[05/17/18 13:23:29.300]:JDBC-Driver PT:This driver's GUID: A9418EFD-5FEF-48A1-E6A7-FD8E41FA234A
[05/17/18 13:23:29.301]:JDBC-Driver PT:Opening triggerless publication state file.
[05/17/18 13:23:29.323]:JDBC-Driver PT:Restricting file Permission for ./jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a.t
[05/17/18 13:23:29.324]:JDBC-Driver PT:Restricting file Permission for ./jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a.p
[05/17/18 13:23:29.324]:JDBC-Driver PT:Restricting file Permission for ./jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a
[05/17/18 13:23:29.331]:JDBC-Driver PT:Unhandled Exception: java.io.IOError: java.io.EOFException
[05/17/18 13:23:29.332]:JDBC-Driver PT:java.io.IOError: java.io.EOFException
at org.mapdb.Volume$FileChannelVol.getInt(Volume.java:988)
at org.mapdb.StoreDirect.checkHeaders(StoreDirect.java:253)
at org.mapdb.StoreWAL.checkHeaders(StoreWAL.java:115)
at org.mapdb.StoreDirect.<init>(StoreDirect.java:207)
at org.mapdb.StoreWAL.<init>(StoreWAL.java:74)
at org.mapdb.DBMaker.extendStoreWAL(DBMaker.java:981)
at org.mapdb.DBMaker.makeEngine(DBMaker.java:758)
at org.mapdb.DBMaker.make(DBMaker.java:701)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.setRecMan(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.open(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFileManager.newJDBMFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFileManager.getFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCChannel.getFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.openTriggerlessFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.beforePoll(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.start(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationProxy.start(Unknown Source)
at com.novell.nds.dirxml.engine.Publisher.run(Publisher.java:607)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException
at org.mapdb.Volume$FileChannelVol.readFully(Volume.java:947)
at org.mapdb.Volume$FileChannelVol.getInt(Volume.java:985)
... 18 more
[05/17/18 13:23:29.334]:JDBC-Driver PT:Shutting down...
[05/17/18 13:23:29.300]:JDBC-Driver PT:This driver's GUID: A9418EFD-5FEF-48A1-E6A7-FD8E41FA234A
[05/17/18 13:23:29.301]:JDBC-Driver PT:Opening triggerless publication state file.
[05/17/18 13:23:29.323]:JDBC-Driver PT:Restricting file Permission for ./jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a.t
[05/17/18 13:23:29.324]:JDBC-Driver PT:Restricting file Permission for ./jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a.p
[05/17/18 13:23:29.324]:JDBC-Driver PT:Restricting file Permission for ./jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a
[05/17/18 13:23:29.331]:JDBC-Driver PT:Unhandled Exception: java.io.IOError: java.io.EOFException
[05/17/18 13:23:29.332]:JDBC-Driver PT:java.io.IOError: java.io.EOFException
at org.mapdb.Volume$FileChannelVol.getInt(Volume.java:988)
at org.mapdb.StoreDirect.checkHeaders(StoreDirect.java:253)
at org.mapdb.StoreWAL.checkHeaders(StoreWAL.java:115)
at org.mapdb.StoreDirect.<init>(StoreDirect.java:207)
at org.mapdb.StoreWAL.<init>(StoreWAL.java:74)
at org.mapdb.DBMaker.extendStoreWAL(DBMaker.java:981)
at org.mapdb.DBMaker.makeEngine(DBMaker.java:758)
at org.mapdb.DBMaker.make(DBMaker.java:701)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.setRecMan(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.open(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFileManager.newJDBMFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFileManager.getFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCChannel.getFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.openTriggerlessFile(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.beforePoll(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.start(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationProxy.start(Unknown Source)
at com.novell.nds.dirxml.engine.Publisher.run(Publisher.java:607)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException
at org.mapdb.Volume$FileChannelVol.readFully(Volume.java:947)
at org.mapdb.Volume$FileChannelVol.getInt(Volume.java:985)
... 18 more
[05/17/18 13:23:29.334]:JDBC-Driver PT:Shutting down...
Resolution
Stop the driver and delete the state files for the driver in the eDirectory DIB directory. Be careful only to delete the state files, and nothing else. The state files contain the GUID of the driver object as a name.
Example of state file names:
jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a.t
jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a.p
jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a
Note: DO NOT RENAME THE FILES!!! They are still referenced if they are present in the directory. Either delete them completely (they will be rebuilt upon driver startup) or move them completely off the server.
Example of state file names:
jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a.t
jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a.p
jdbc_a9418efd-5fef-48a1-e6a7-fd8e41fa234a
Note: DO NOT RENAME THE FILES!!! They are still referenced if they are present in the directory. Either delete them completely (they will be rebuilt upon driver startup) or move them completely off the server.
Cause
Corrupt triggerless state files.