Hi,

we're observing some strange resyncs since Monday on two of our SQL
drivers (2.7.1 20070626) that use the same Informix DB administred by
one of our partners. Shouldn't a retry leave the jdbm files in a
consistent state? At least I would expect that a retry shouldn't lead to
a resync of all objects? We tracked the Informix exception to be raised
because of some kind of locking - so maybe there's a connection
initialization parameter to extend retries etc. when columns are locked
- I can't find one in the driver configuration?

Thanks in advance!

trace:

<status event-id="0" level="warning" type="app-general">
<description>Unable to advance result set cursor. A retry condition
has been detected. Retrying in 30 seconds.</description>
<jdbc:exception jdbc:class="java.sql.SQLException"
jdbc:error-code="-243" jdbc:sql-state="IX000" xmlns:jdbc="urn:dirxml:jdbc">
<jdbc:message>Could not position within a table
(sospos.tanuse).</jdbc:message>
</jdbc:exception>
<jdbc:exception jdbc:class="java.sql.SQLException"
jdbc:error-code="-144" jdbc:sql-state="IX000" xmlns:jdbc="urn:dirxml:jdbc">
<jdbc:message>ISAM error: key value locked</jdbc:message>
</jdbc:exception>
<application>DirXML</application>
<module>UNIGOE-HIS-SOS-TAN</module>
<object-dn></object-dn>
<component>Publisher</component>
</status>



one minute later we get the following exception:



<status event-id="0" level="warning" type="driver-general">
<description>Triggerless publication state file corruption detected:
java.lang.ClassCastException. Corrupted file
'c:\novell\temp-tan\jdbc_2ccf55cf-1cea-4497-945c-0f5826e7e68d' has been
archived for debugging purposes. Intiating a resync of all
objects.</description>
<jdbc:exception jdbc:class="java.lang.ClassCastException"
xmlns:jdbc="urn:dirxml:jdbc">
<jdbc:stack-trace>java.lang.ClassCastException
at jdbm.btree.BPage.convertRecid(BPage.java:697)
at jdbm.btree.BPage.childBPage(BPage.java:665)
at jdbm.btree.BPage.remove(BPage.java:441)
at jdbm.btree.BPage.remove(BPage.java:442)
at jdbm.btree.BTree.remove(BTree.java:313)
at
com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMTr ee.remove(Unknown Source)
at
com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMTr ee$Iterator.remove(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.util.state.State Mediator.putBackEntries(Un
known Source)
at
com.novell.nds.dirxml.driver.jdbc.util.state.State Mediator.loadDataStructure
s(Unknown Source)
at
com.novell.nds.dirxml.driver.jdbc.util.state.State Mediator.startImpl(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.util.state.State Mediator.start(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessP ublicationShim.waitForEven
ts(Unknown Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCPublicationS him.pollImpl(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCPublicationS him.pollLoop(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCPublicationS him.start(Unknown Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCPublicationP roxy.start(Unknown Source)
at com.novell.nds.dirxml.remote.loader.Driver.run(Dri ver.java:851)
at java.lang.Thread.run(Thread.java:534)
</jdbc:stack-trace>
</jdbc:exception>
<application>DirXML</application>
<module>UNIGOE-HIS-SOS-TAN</module>
<object-dn></object-dn>
<component>Publisher</component>
</status>



sometimes we get an EOFException after the retry. Looking at the file sizes
of the jdmb files they seem to be truncated:




<status event-id="0" level="warning" type="driver-general">
<description>Triggerless publication state file corruption detected:
java.io.EOFException. Corrupted file
'c:\novell\temp-tan\jdbc_2ccf55cf-1cea-4497-945c-0f5826e7e68d' has been
archived for debugging purposes. Intiating a resync of all
objects.</description>
<jdbc:exception jdbc:class="java.io.EOFException"
xmlns:jdbc="urn:dirxml:jdbc">
<jdbc:stack-trace>java.io.EOFException
at
java.io.ObjectInputStream$PeekInputStream.readFull y(ObjectInputStream.java:2
165)
at
java.io.ObjectInputStream$BlockDataInputStream.rea dShort(ObjectInputStream.j
ava:2631)
at
java.io.ObjectInputStream.readStreamHeader(ObjectI nputStream.java:734)
at java.io.ObjectInputStream.&lt;init>(ObjectInputStr eam.java:253)
at
jdbm.recman.RecordManager.byteArrayToObject(Record Manager.java:320)
at jdbm.recman.RecordManager.fetchObject(RecordManage r.java:263)
at jdbm.helper.ObjectCache.fetchObject(ObjectCache.ja va:104)
at jdbm.btree.BTree.getRoot(BTree.java:452)
at jdbm.btree.BTree.browse(BTree.java:395)
at
com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMTr ee$Iterator.&lt;init>(Unkn
own Source)
at
com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMTr ee$Iterator.&lt;init>(Unkn
own Source)
at
com.novell.nds.dirxml.driver.jdbc.util.jdbm.JDBMTr ee.iterator(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.util.state.State Mediator.putBackEntries(Un
known Source)
at
com.novell.nds.dirxml.driver.jdbc.util.state.State Mediator.loadDataStructure
s(Unknown Source)
at
com.novell.nds.dirxml.driver.jdbc.util.state.State Mediator.startImpl(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.util.state.State Mediator.start(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCTriggerlessP ublicationShim.waitForEven
ts(Unknown Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCPublicationS him.pollImpl(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCPublicationS him.pollLoop(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCPublicationS him.start(Unknown Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCPublicationP roxy.start(Unknown Source)
at com.novell.nds.dirxml.remote.loader.Driver.run(Dri ver.java:851)
at java.lang.Thread.run(Thread.java:534)
</jdbc:stack-trace>
</jdbc:exception>
<application>DirXML</application>
<module>UNIGOE-HIS-SOS-TAN</module>
<object-dn></object-dn>
<component>Publisher</component>
</status>

--
MfG

Sebastian Rieger