A method is provided for consistent reading of a number of objects (1O, 2O,
3O) within a database. The method is adapted for use with a database in
which transactions are managed by two-phase locking. A first phase (A)
includes a request for access to objects (1O, 2O, 3O) affected by the
transaction and locking of these objects as soon as access thereto has
been granted. A second phase (B) includes committing the transaction and
releasing all locks that were set in the first phase. The actual work
performed in a transaction may be summarized as object changing actions
and/or object non-changing actions. A change, or an update, of the content
of an object is performed by writing the new content into a new version of
the object, where the current version of the object prior to the
transaction is retained until no further transactions make use of this
version. The transaction performs all changing actions within the first
phase (A). The transaction is adapted to retain access to the objects (1O,
2O, 3O) after the second phase (B). The transaction is also adapted to
perform the largest possible number of non-changing actions in a third
phase (C), after the second phase (B), whereafter the transaction closes
access to the objects. Thus, the transaction is provided with a consistent
snapshot of effected objects (1O, 2O, 3O) in the database after the locks
have been released, with regard to non-changing actions.
Een methode wordt verstrekt voor verenigbare lezing van een aantal voorwerpen (1O, 2O, 3O) binnen een gegevensbestand. De methode wordt aangepast voor gebruik met een gegevensbestand waarin de transacties door sluiten in twee fasen worden beheerd. Een eerste fase (A) omvat een verzoek om toegang tot voorwerpen (1O, 2O, 3O) die door de transactie en het sluiten van deze voorwerpen worden beïnvloed zodra de toegang daaraan is verleend. Een tweede fase (B) omvat het begaan van de transactie en het vrijgeven van alle sloten die in de eerste fase werden geplaatst. Het daadwerkelijke werk dat in een transactie wordt uitgevoerd kan als objecten veranderende acties worden samengevat en/of bezwaar hebben niet-verandert acties. Een verandering, of een update, van de inhoud van een voorwerp worden uitgevoerd door de nieuwe inhoud in een nieuwe versie van het voorwerp te schrijven, waar de huidige versie van het voorwerp voorafgaand aan de transactie wordt behouden tot geen verdere transacties van deze versie gebruik maken. De transactie voert alle veranderende acties binnen de eerste fase (A) uit. De transactie wordt aangepast om toegang tot de voorwerpen (1O, 2O, 3O) na de tweede fase (B) te behouden. De transactie wordt ook aangepast om het grootste mogelijke aantal niet-verandert acties in een derde fase (C), na de tweede fase (B) uit te voeren, whereafter de toegang van het transactiesluiten tot de voorwerpen. Aldus, wordt de transactie voorzien van een verenigbare momentopname van uitgevoerde voorwerpen (1O, 2O, 3O) in het gegevensbestand nadat de sloten, met betrekking tot niet-verandert acties zijn vrijgegeven.