Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Better demonstration of the serious transaction bug in Oracle

Re: Better demonstration of the serious transaction bug in Oracle

From: K Raza <ELN/Kraza_at_earthlink.net>
Date: Tue, 08 Feb 2000 02:04:28 GMT
Message-ID: <MQKn4.8575$Mk2.351354@newsread2.prod.itd.earthlink.net>


SQLWKS> select count(*) "Total Transactions" from isolationtest; Total Tr


      1000
1 row selected.
SQLWKS> select count(*) "Correct Transactions" from isolationtest where val =

     2> 200;
Correct Tr


       993
1 row selected.
SQLWKS> select count(*) "Failed Transactions" from isolationtest where val !=

     2> 200;
Failed Tr


         7
1 row selected.
SQLWKS> "Steve A" <spectre_at_hkstar.com> wrote in message news:1e5odhh.yysdqj16s0fvqN@[192.168.2.50]...
> Hi,
> I get the same result on netware, it will only do 9 transactions then
> drops out of the loop.
>
> steve
>
>
>
>
> Håkon T Sønderland <hts_at_antares.no> wrote:
>
> > Joseph Weinstein wrote:
> > >
> > > Hi. While some folks were able to duplicate the Oracle transaction
bug,
> > > At least one person did not, with the small simple script I sent. Here
is
> > > a looping script which is much more compact, and intelligently written
> > > (not by me). This runs 1000 transactions, each one inserting a unique
> > > row to a table, then updating it. The bug is that the update part of
the
> > > transaction may silently fail. I get:
> > >
> > > Total Transactions
> > > --------------------
> > > 1000
> > >
> > > Correct Transactions
> > > --------------------
> > > 821
> > >
> > > Failed Transactions
> > > --------------------
> > > 179
> > >
> > > If anyone would try this, and post their results, it would be very
helpful.
> >
> > Simpler PL/SQL:
> > -------------------------------------------------------------------
> > set echo on
> > create table isolationtest (id number primary key, val float);
> >
> > BEGIN
> > for i in 1 .. 1000 loop
> > SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
> > insert into isolationtest (id,val) values (i,100);
> > update isolationtest set val = 200 where id = i;
> > COMMIT;
> > end loop;
> > END;
> > /
> >
> > select count(*) "Total Transactions" from isolationtest;
> > select count(*) "Correct Transactions" from isolationtest where val =
> > 200;
> > select count(*) "Failed Transactions" from isolationtest where val !=
> > 200;
> >
> > drop table isolationtest;
> > ---------------------------------------------------------------------
> >
> > I can get this to work with 8.0.5 and Linux, but not the
> > original version:
> >
> > Total Transactions
> > --------------------
> > 1000
> >
> > Correct Transactions
> > --------------------
> > 993
> >
> >
> > Failed Transactions
> > --------------------
> > 7
> >
> > Haakon
> > --
> > Core Technology AS - Et selskap i Antares Gruppen
> > http://www.antares.no/
> > hts_at_antares.no
>
Received on Mon Feb 07 2000 - 20:04:28 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US