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: How does Oracle support REPEATABLE READ

Re: How does Oracle support REPEATABLE READ

From: Ben Brugman <benbrugman_at_onbekend.nl>
Date: Thu, 25 Apr 2002 14:44:33 GMT
Message-ID: <3cc813a4.26857562@news.nl.uu.net>


On Thu, 25 Apr 2002 18:06:44 +0400, "Vladimir M. Zakharychev" <bob_at_dpsp-yes.com> wrote:

>The only isolation levels supported in Oracle are READ COMMITTED (default)
>and SERIALIZABLE. Excerpt from the docs:
>SERIALIZABLE indicates that transactions in the session use the serializable
>
> transaction isolation mode as specified in SQL92. That is, if a serializable transaction
>
>attempts to execute a DML statement that updates rows currently being updated by
>
>another uncommitted transaction at the start of the serializable transaction, then the
>
>DML statement fails.

From :

         (Second Informal Review Draft) ISO/IEC 9075:1992, Database
         Language SQL- July 30, 1992

Extracts :
"The execution of concurrent SQL-transactions at isolation level SERIALIZABLE is guaranteed to be serializable. A serializable execution is defined to be an execution of the operations of concurrently executing SQL-transactions that produces the same effect as some serial execution of those same SQL-transactions. A serial execution is one in which each SQL-transaction executes to completion before the next SQL-transaction begins."

Oracle definitively does not support the serializable as described above. It's fairly easy to create two concurrend transactions under Oracle with the isolation level set to serializable which run together can result in a database which can not be the result of the two transactions run after each other in any order. (The DML statement does not fail in that case as it should under the ISO/IEC 9075:1992). The question remains for the ORACLE JDBC driver does this have a REPEATABLE READ level.
Is this level compliand to the level described in the original message ?
If not then ORACLE does not have a compliant JDBC driver. And Oracle is not Java compliant.
If it is Java compliant how is it implemented ?

ben brugman

> A serializable transaction can see its own updates.
>
>READ COMMITTED indicates that transactions in the session will use the default
>
>Oracle transaction behavior. Thus, if the transaction contains DML that requires row
>
>locks held by another transaction, then the DML statement will wait until the row locks
>
>are released.
>
>
>--
>Vladimir Zakharychev (bob@dpsp-yes.com) http://www.dpsp-yes.com
>Dynamic PSP(tm) - the first true RAD toolkit for Oracle-based internet applications.
>All opinions are mine and do not necessarily go in line with those of my employer.
>
>
>"Ben Brugman" <benbrugman_at_onbekend.nl> wrote in message news:3cc802e0.22565062_at_news.nl.uu.net...
>> Our developers use Enterprise JavaBeans.
>> Choosen isolation level is REPEATABLE READ.
>> Does Oracle give this isolation level (or better)
>> as described below ?
>> (Text is taken from a standard JavaBeans book).
>>
>> Thanks,
>> Ben Brugman
>>
>> Environment :
>> Borland Enterprise Server.
>> Oracle JDBC driver.
>>
>>
>> From: Mastering Enterprise JavaBeans.
>>
>> "When to Use REPEATABLE READ
>> Use REPEATABLE READ when you need to update one or more data elements
>> in a resource, such as one or more records in a relational database.
>> You want to read each of the rows that you're modifying and then be
>> able to update each row, knowing that none of the rows are being
>> modified by other concurrent transactions. If you choose to reread any
>> of the rows at any time later in the transaction, you'd be guaranteed
>> that the rows still have the same data that they did at the beginning
>> of the transaction."
>>
>> JDBC drivers should support the REPEATABLE READ isolation level.
>> When using the Oracle JDBC driver will it support the REPEATABLE READ
>> isolation level with the functionality as stated above? Especially the
>> part : "knowing that none of the rows are being modified by other
>> concurrent transactions" ?
>>
>>
>> Side question: On which ORACLE isolation level is the JDBC REPATABLE
>> READ isolation level mapped ?
>>
>> Ben Brugman
>

Ben Brugman Received on Thu Apr 25 2002 - 09:44:33 CDT

Original text of this message

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