It means that you are locking too many records in a single transaction. There are special cases where there is an inherent need to lock a lot of records at one time, e.g., a customer I used to have that would receive a single check that paid off 20-30,000 invoices. But, most of the time the issue is a transaction scope that is higher than you think it is, causing a very large number of what should be small atomic transactions to be lumped into one transaction. COMPILE XREF on potentially offending programs will often reveal unexpected transaction scope, although one of the sneaky ways of getting this problem is to have a program with perfectly reasonable transaction structure on its own and then call it from another program where a transaction is already open, thus resulting in everything in the sub program being part of a single transaction. Another possible cause, though less typical, is doing a FOR EACH EXCLUSIVE on a table where the WHERE clause results in reading a large number of records without the benefit of a good index, so that many records have to be read before matching records are found. That results in locking all the skipped records until the desired record is found.