>>>I have never seen this before, but I guess the first thing you have to do is to check SET REPROCESS setting (should be AUTOMATIC). If you still will see the problem, you can proceed by old RLOCK() way (have separate Locker table with particular record locked when a user try to perform specific operation).
>>
>>I have SET REPROCESS TO 2 SECONDS. If I put AUTOMATIC, how will this change the behavior?
>>
>>In my case, I have 2 collisions approx. per month when 2 applications insert a record. This is the insertion which is the most busy in the application. The error is always the same. It is also at the same line.
>
>To my mind, it doesn't make difference, however I would prefer to use AUTOMATIC, just because it doesn't check time (no additional internal API call involved). Also, remember that there is difference in unsuccessful lock reaction when Lock attemted by command (Insert) and function (Rlock).
You mentioned you've never seen this before. Were you making reference to the fact that you never had an error with INSERT INTO until now?
When INSERT INTO can't obtain the lock, with SET REPROCESS TO AUTOMATIC, will this mean the application will remain on that command until it succeed. What if it can't. Does that mean, the application will wait forever? I just had a situation this morning when the INSERT INTO failed for more than 2 minutes resulting in a Web server timeout for that transacion which was also avoiding any upcoming transaction during that 2 minutes.