Environment
NetIQ Identity Manager Driver - JDBC
Situation
JDBC Driver shuts down with the following error in the trace log.
[07/19/14 07:32:22.393]:JDBC PT:Shut down.
[07/19/14 07:32:22.413]:JDBC PT:PublicationShim.start() returned:
[07/19/14 07:32:22.414]:JDBC PT:
<nds dtdversion="2.0" ndsversion="8.x" xmlns:jdbc="urn:dirxml:jdbc">
<source>
<product build="20130111_0503" instance="ESD JDBC" version="4.0.0.1">DirXML Driver for JDBC</product>
<contact>Novell, Inc.</contact>
</source>
<output>
<status level="fatal" type="driver-general">
<description>Unable to cleanup expired queries.</description>
<jdbc:exception jdbc:class="java.io.FileNotFoundException">
<jdbc:message>e:\novell\oracle\jdbc_27b312eb-3f72-464f-8eec-8d7a50f0c246_0.lg (Access is denied)</jdbc:message>
<jdbc:stack-trace>java.io.FileNotFoundException: e:\novell\oracle\jdbc_27b312eb-3f72-464f-8eec-8d7a50f0c246_0.lg (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at jdbm.recman.TransactionManager.open(TransactionManager.java:118)
at jdbm.recman.TransactionManager.<init>(TransactionManager.java:95)
at jdbm.recman.RecordFile.<init>(RecordFile.java:101)
at jdbm.recman.RecordManager.<init>(RecordManager.java:98)
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.JDBMFile.reopen(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.expireQueries(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.expireSubscriberQueries(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.betweenPollingCycles(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.disabledLoop(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:542)
at java.lang.Thread.run(Unknown Source)
</jdbc:stack-trace>
</jdbc:exception>
</status>
</output>
</nds>
[07/19/14 07:32:22.393]:JDBC PT:Shut down.
[07/19/14 07:32:22.413]:JDBC PT:PublicationShim.start() returned:
[07/19/14 07:32:22.414]:JDBC PT:
<nds dtdversion="2.0" ndsversion="8.x" xmlns:jdbc="urn:dirxml:jdbc">
<source>
<product build="20130111_0503" instance="ESD JDBC" version="4.0.0.1">DirXML Driver for JDBC</product>
<contact>Novell, Inc.</contact>
</source>
<output>
<status level="fatal" type="driver-general">
<description>Unable to cleanup expired queries.</description>
<jdbc:exception jdbc:class="java.io.FileNotFoundException">
<jdbc:message>e:\novell\oracle\jdbc_27b312eb-3f72-464f-8eec-8d7a50f0c246_0.lg (Access is denied)</jdbc:message>
<jdbc:stack-trace>java.io.FileNotFoundException: e:\novell\oracle\jdbc_27b312eb-3f72-464f-8eec-8d7a50f0c246_0.lg (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at jdbm.recman.TransactionManager.open(TransactionManager.java:118)
at jdbm.recman.TransactionManager.<init>(TransactionManager.java:95)
at jdbm.recman.RecordFile.<init>(RecordFile.java:101)
at jdbm.recman.RecordManager.<init>(RecordManager.java:98)
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.JDBMFile.reopen(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.expireQueries(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.expireSubscriberQueries(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.betweenPollingCycles(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.disabledLoop(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:542)
at java.lang.Thread.run(Unknown Source)
</jdbc:stack-trace>
</jdbc:exception>
</status>
</output>
</nds>
Resolution
Using a file access software to track file activity, we found that an anti-virus type software was creating a file lock on the state file. After disabling that offending software, the driver was able to access the state file when it needed and remained running.
Recommend excluding the state file directory from virus scans / other software that would create a lock on the files.
Recommend excluding the state file directory from virus scans / other software that would create a lock on the files.