Update, internally, consists of following steps (simplified) :

1. read record
2. evaluate new record
3. write new record into data page

really, it is a more complex, but for now we interesting only in steps above.

At step 1, read-committed (RC) transaction waits for commit or rollback of 
concurrent active transaction and thus reads only comitted record version.

At step 3, transaction re-reads original record version and must ensure that it 
is still the same record version as it was at step 1 (else we will silently 
replace other's work). If current record version was changed since step 1, 
update_conflict error will be reported - exactly as you see. 
Again, it is simplified description.

  Note, time slice between steps 3 and 1 usually very small. When you test 
concurrent updates in isql, you can't reproduce such scenario. But in real 
life, when you have a lot of concurrent updates by applications it becomes much 
more probably and really happens sometimes.

Hope it helps,
Vlad
        • ... brucedickin...@wp.pl [firebird-support]
          • ... 'Walter R. Ojeda Valiente' sistemas2000profesio...@gmail.com [firebird-support]
            • ... brucedickin...@wp.pl [firebird-support]
              • ... 'Walter R. Ojeda Valiente' sistemas2000profesio...@gmail.com [firebird-support]
              • ... 'Walter R. Ojeda Valiente' sistemas2000profesio...@gmail.com [firebird-support]
              • ... brucedickin...@wp.pl [firebird-support]
      • ... Svein Erling Tysvær svein.erling.tysv...@kreftregisteret.no [firebird-support]
        • ... brucedickin...@wp.pl [firebird-support]
  • ... Ann Harrison aharri...@ibphoenix.com [firebird-support]
    • ... 'Walter R. Ojeda Valiente' sistemas2000profesio...@gmail.com [firebird-support]
      • ... hv...@users.sourceforge.net [firebird-support]
        • ... brucedickin...@wp.pl [firebird-support]
        • ... 'Walter R. Ojeda Valiente' sistemas2000profesio...@gmail.com [firebird-support]
          • ... hv...@users.sourceforge.net [firebird-support]
            • ... 'Walter R. Ojeda Valiente' sistemas2000profesio...@gmail.com [firebird-support]

Reply via email to