Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: serialized transactions
It is possible that you were just lucky on the first test,
or possibly you have some init.ora setting (such as
delayed_logging_block_cleanout) set differently.
My guess is that you have INITRANS = 1 on the table. For any table in a serialized transaction you need initrans set to at least 2 to allow for a different strategy for read-consistency (this is documented somewhere, but don't ask me where).
If I create a table with 2 rows in the same block I can repeat the behaviour of either of your systems.
INITRANS=1 gives me the error on your step 6 INITRANS=2 gives me the error on your step 7
--
Jonathan Lewis
Yet another Oracle-related web site: www.jlcomp.demon.co.uk
Mohamad SALEH wrote in message <37049D05.76C12441_at_orsys.fr>...
>I have a plateforme Solaris 2.6 intel x86. Oracle server 7.3.3.
>The documentation says that the granularity is on a row level.
>
>I simply use two concurrent transactions. Here the instructions I use in
>chronological order.
>Column C1 is a primary key, v1, v2 are different values of C1.
>
>"Transaction 1"
>1 - SET TRANSACTION ISOLATION LEVEL SERIALIZED;
>2 - SELECT * FROM T;
>
>"Transaction 2 "
>3 - UPDATE T SET C2 = ... WHERE C1 = v1;
>4 - COMMIT;
>
>"Transaction 1" : Suite
>
>5- SELECT * FROM T;
>6 - UPDATE T SET C2 = ... WHERE C1 = v2;
>7 - UPDATE T SET C2 = ... WHERE C1 = v1;
>
>In this sequence and on this plateform, I have the message in step 7
>stating that it is not possible to serialize which is conform to the
>documentation.
>
>But when I add even a SELECT statement on transaction 2, I have the
>message on the 6th!
>I made a test on NT with Oracle 7.3.4 and there the message notifying
>the problem is always on the 6th step
>even with the sequence described up here.
>
>Please repond by E-mail and thanks in advance.
>
Received on Fri Apr 02 1999 - 08:44:50 CST
![]() |
![]() |