IDM JDBC Driver - Unable to cleanup expired queries - java.io.FileNotFoundException

  • 7015570
  • 21-Aug-2014
  • 21-Aug-2014

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.&lt;init>(Unknown Source)
    at java.io.FileOutputStream.&lt;init>(Unknown Source)
    at jdbm.recman.TransactionManager.open(TransactionManager.java:118)
    at jdbm.recman.TransactionManager.&lt;init>(TransactionManager.java:95)
    at jdbm.recman.RecordFile.&lt;init>(RecordFile.java:101)
    at jdbm.recman.RecordManager.&lt;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.