I want to talk about a problem, we recently experienced, which I have no
explanation for. May be, some else has experienced the same.
An applications inserts rows into a table and frequently commits, say after
10 inserts. Concurrently another application reads the very same table
(without UR) and externalized the read rows to a sequential dataset. After
it has finisched the application does a DELETE witout any where-clause.
The first application continues to insert rows, while in between it had to
wait for the DELETE.
Now I come to my problem. When the first application finished, an
application developer did some checks and saw, that some of the rows were
still in the table, the second application also had read and written to
dataset (rows have identical keys). How can that be?
The application developer assures, that he didn't ignore any negative
SQLCODE (such as ressource unavailable) nor can I imagine, that a mass
delete only deletes part of the rows (but I have to admit, that I do not
know, how a mass delete internally works, the only thing I know about that,
is that DB2 turns on a special bit).