My multithreaded, multi-user application is using Access through ODBC & MFC. I'm receiving periodic catches of DBException (using the CRecordset::Update member function) with reason: "Could not update; currently locked by user Admin on machine ....".
Each of my users receives his own connection to the database, although they are often serially reused. I have implemented critical section locking around each call to any of the underlying CRecordset member functions.
There are between 75 and 150 users on my application when this starts happening. There are probably 15 or 20 database connections at any one time.