JDBC Fanout connection error: NoClassDefFoundError

  • 7024385
  • 27-Jan-2020
  • 18-Feb-2020

Environment

NetIQ Fanout Agent version=1.2.0.0 running on Windows 2016
jdbc fanout driver version:  4.1.0.0
idm473 running on windows2012 R2

This issue would also happen on other versions of the driver and engine

Situation

When the JDBC Fanout Agent is running on a server other than the IDM server you may see errors in the connection logs.  You would see these errors in the convdev and claimdev error logs.  The driver may startup and make a successful connection to the database but the connection logs may show the following type of error.

NetIQ Fanout Agent:CONVDEV PT:Unhandled Exception:  java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
NetIQ Fanout Agent:CONVDEV PT:java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at org.mapdb.DBMaker.fileDB(DBMaker.kt)
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.JDBCPublicationShim.openQueryFiles(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.netiq.idm.fanoutagent.driver.FOPublisherInterface.run(FOPublisherInterface.java:147)
at java.lang.Thread.run(Unknown Source)

NetIQ Fanout Agent:CONVDEV PT:Shutting down...
NetIQ Fanout Agent:CONVDEV PT:Shut down.
NetIQ Fanout Agent:CONVDEV PT:: PublicationShim.start() returned:

Resolution

The following files need to be copied from the ../dirxml/classes directory on the IDM server to where the Fanout Agent is running on the non-IDM server.

guava*.jar
elsa*.jar
lz4*.jar
kotlin-runtime*.jar
kotlin-stdlib*.jar.
eclipse-collections*.jar
eclipse-collections*.jar
eclipse-collections-forkjoin*.jar

Note: The exact version of these jar files are not listed above because the versions will change over time. Below is the list that was used to solve this specific implementation.

guava-19.0.jar
elsa-3.0.0-M5.jar
lz4-1.3.0.jar
kotlin-runtime-1.1.4-3.jar
kotlin-stdlib-1.1.4-3.jar.
eclipse-collections-8.2.0.jar
eclipse-collections-api-8.2.0.jar
eclipse-collections-forkjoin-8.2.0.jar