Unlocking the Mystery
The automated testing uncovered a number of glitches in the locking fixes which I've been busily patching. While I was in the process of trying to convince a particular set of transactions that, no, they did not need to grab a write lock on the cube object and hold it for several minutes, thereby preventing a bunch of other processes from running successfully, I discovered that the code that does check out locks for our documents was never properly locked.
Oh. Well, that would explain that class of error that I saw.
I'm now in a detour as I move the check out lock interfaces into a class where we can lock them granularly by entity and where you'll have to take a write lock on the entity to be able to get at them. I see the main road in the distance...
Oh. Well, that would explain that class of error that I saw.
I'm now in a detour as I move the check out lock interfaces into a class where we can lock them granularly by entity and where you'll have to take a write lock on the entity to be able to get at them. I see the main road in the distance...