Environment
Identity Manager Driver - JDBC
Situation
When attempting to synchronize object changes from a connected database via a JDBC driver the following errors are received. (see trace snipit below)
Driver is connected to a Read Only view in the database.
[03/19/21 16:35:28.313]:JDBCTest PT:CALLED
[03/19/21 16:35:28.313]:JDBCTest PT:CALLING Statement.ClearWarnings()
[03/19/21 16:35:28.313]:JDBCTest PT:CALLED
[03/19/21 16:35:28.314]:JDBCTest PT:BEGIN Test for bad connection.
[03/19/21 16:35:28.315]:JDBCTest PT:END Test for bad connection.
[03/19/21 16:35:28.316]:JDBCTest PT:Connection is bad.
[03/19/21 16:35:28.317]:JDBCTest PT:Receiving DOM document from application.
[03/19/21 16:35:28.317]:JDBCTest PT:
<nds dtdversion="2.0" ndsversion="8.x" xmlns:jdbc="urn:dirxml:jdbc">
<source>
<product build="20180222_0550" instance="JDBCTest" version="4.1.0.0">DirXML Driver for JDBC</product>
<contact>NetIQ Corporation</contact>
</source>
<input>
<status level="error" type="driver-general">
<description>java.lang.UnsupportedOperationException: Store does not support rollback</description>
<jdbc:exception jdbc:class="java.lang.UnsupportedOperationException">
<jdbc:message>Store does not support rollback</jdbc:message>
<jdbc:stack-trace>java.lang.UnsupportedOperationException: Store does not support rollback
at org.mapdb.DB.rollback(DB.kt:441)
at com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMFile.rollback(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.util.state.StateMediator.start(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessPublicationShim.waitForEvents(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.pollImpl(Unknown Source)
at com.novell.nds.dirxml.driver.jdbc.JDBCPublicationShim.pollLoop(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:748)
</jdbc:stack-trace>
</jdbc:exception>
</status>
</input>
</nds>
Resolution
Resolve the connection issue with the database.
Could be from bad connection configuration to the view, or from a bad database driver (jar file) for the connected database.
Cause
When a connection is determined to be bad by a driver, it will automatically attempt to do a rollback on the transaction.
As this is a Read Only view, that rollback attempt was unsuccessful, generating the associated error.
The real issue is to resolve the connection issue causing the connection is bad error in the trace.