Subject | Re: [firebird-support] Is it a feature or a bug of rows versioning? |
---|---|
Author | Jakub Hegenbart |
Post date | 2004-02-23T18:54:38Z |
> Then, my application will NOT be able to see any commited changesBecause you haven't committed :) Not in the updating transaction, in the selecting one...
> BY OTHER APPLICATIONS since I open
> the connection or since the last commit. For example,
>
> For simplicity, at time t0, my app issues
> select name from employee where id = 11
> ==> "Original name"
>
> Then, at time time t100 (several minutes later), another external app
> issues
> update employee set name = 'New name' where id = 11;
> commit;
>
> Then, at time t200 (several minutes later), my app issues
> select name from employee where id = 11
> ==> "Original name"
>
>
> Why did my app NOT see the "New name"?
>
>
> Ben
>
Hmmm, it seems everything OK - as long as you are aware what "SNAPSHOT" isolation level means. Because this is exactly the behavior one would expect from SNAPSHOT transactions :)
AFAIK, if you don't explicitly set your transaction isolation level, the default is SNAPSHOT for all connectivity options (API, ISQL, ESQL, JDBC ... all these should default to SNAPSHOT, if i'm not mistaken)
In IB6 Docs, there should be plenty of stuff about transactions.
BTW, i found the IB 4 (yes, that dinosaur :) docs very interesting and informative on the topic of IB/FB transaction isolation behaviour - some things don't evolve that fast...and these old docs are well written.
Jakub Hegenbart
____________________________________________________________
Novy Golf. Navstivte prodejce Volkswagen v ramci Tydnu s Golfem (20.2. - 7.3.) a vyhrajte novy Golf! http://ad2.seznam.cz/redir.cgi?instance=70714%26url=http://www.volkswagen.cz