Hi there,
I nearly broke my head around some mysterious behaviour of my
application, and right now I don't know if this is all natural and WAD
or maybe if there was a bug in 3.0.2 or maybe still is.
First I'm gonna give a brief description and maybe one of the experts
here can tell me what I am probably understanding wrong about how
FBProvider handles transactions.
1.)
Transaction T1 saves a new record to the database, then commits
(certified!).
2.)
T2 selects records from the database, but does not get the
recently saved record. T2 commits.
3.)
T3 is really doing the same as T2 (because I am only calling the very
same method!), but now the missing record is selected.
I am handling transactions like this:
t = connXY.BeginTransaction();
...
...
// do the stuff
...
...
t.commit();
t = null;
All transactions are using the same connection object.
Isolation level is "read committed"; using all the default
values.
I would have expected T2 to select the record that has been committed
to the database by T1. And I am certainly surprised that simply "asking
the database again" will then yield the record.
T1 most definitely is committed. Of course I am using try/catch and in
addition I checked with other software using "read committed" and they
can already select the new record.
Where is my misconception in this story? I plan to implement a lot
more "live" updates using events and would like to get immediate
selecting of freshly inserted records working.
mit freundlichen Grüßen,
André Knappstein
EDV und Controlling
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
beta Eigenheim- und Grundstücksverwertungsgesellschaft mbH
Hafenweg 4
59192 Bergkamen-Rünthe
Telefon: +49 2389 9240 140
Telefax: +49 2389 9240 150
e-mail: kna...@be...
Amtsgericht Hamm Nr. B 420
Geschäftsführer: Achim Krähling, Dirk Salewski und Matthias Steinhaus
USt-IDNr.: DE 125215402
|