Icon View Incident Report

Serious Serious
Reported By: Matthew Jones
Reported On: 1/11/2006
For: Version 4.22 Build 3
# 2156 Restricted Transactions Used in UPDATE and DELETE Statements Not Acquiring Proper Write Lock

I've just updated to DBISAM "4.22 Build 3" and I'm still getting the DBISAM "index error 8965" reported from a test site. I upgraded because I had this error a while ago, and upgraded and see it was updated again.

My app is doing multi-threaded read and writes of a database. My understanding is that this is an error that was fixed, but I don't know if I'm triggering something more, or if it is a problem in my code. Of course I find it hard to repeat it here!

Essentially what I have is "two" threads. One runs and looks for work to do in the database, and the "other" is created by RemObjects calls (and hence there may be more than one). Actually, on checking I see there is another session and table set on the main form, which may be relevant.


Comments Comments
This problem was caused by the UPDATE and DELETE SQL statements use of restricted transactions. Basically, these statements would acquire the proper transaction lock, but would not acquire the proper write lock during the commit flushing. This is a fairly serious issue, so updating to the current build is recommended. As far as we know, this problem cannot cause corruption, rather it causes an #8965 error in a reading session if it happens to attempt to read data during the commit flushing of a DELETE or UPDATE query.


Resolution Resolution
Fixed Problem on 1/16/2006 in version 4.22 build 4


Products Affected Products Affected
DBISAM Additional Software and Utilities
DBISAM ODBC Client-Server
DBISAM ODBC Client-Server with Source
DBISAM ODBC Standard
DBISAM ODBC Standard with Source
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source

Image