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

Home -> Community -> Usenet -> c.d.o.misc -> Re: JDBC/ORACLE different isolation level support in client vs. server

Re: JDBC/ORACLE different isolation level support in client vs. server

From: Joseph Weinstein <joe_at_weblogic.com>
Date: Tue, 01 Feb 2000 11:05:23 -0800
Message-ID: <38972E73.43CF4DC9@weblogic.com>


Hi Mark!

  The first thing to do is to verify that you have the latest version of the JDBC driver. For the longest time there was a *silly* bug in Oracle's JDBC drivers, where the driver would throw an exception when any isolation level was requested except "READ_UNCOMMITTED", for which the driver would _do nothing_.

   The silliness is(was?) that transaction isolation has nothing to do with the client, except to enable the client to tell the DBMS what level to supply. All the semantics of transaction isolation are in the DBMS. Oracle, (the DBMS) supports READ_COMMITTED as the default, and supposedly supports SERIALIZABLE, but that level is seriously broken, and I can demonstrate that easily to anyone who is interested in this latter claim.

   Therefore, in order to get along as easily as possible, you should just not try to set isolation level, rely on the default being READ_COMMITTED, and code your transactions to not need any higher isolation level.

Joe Weinstein at BEA, the home of WebLogic

Mark Plotnick wrote:

> I'm using JDBC to access an ORACLE database from one Solaris
> machine to a different Solaris machine.
> I'm using Oracle Release 8.0.5.0.0.
>
> The problem is the JDBC call 'supportsTransactionIsolationLevel()'
> returns different values when used on the same machine as ORACLE is
> installed on as compared to when run over ORACLE client software.
>
> Here's what I get on the ORACLE Server machine:
> Connecting to jdbc:oracle:thin:system/oracle8_at_grolsh:1521:ENSO
> Connected
> Supports Transaction Isolation level..
> TRANSACTION_NONE= false
> TRANSACTION_READ_UNCOMMITTED= false
> TRANSACTION_READ_COMMITTED= TRUE
> TRANSACTION_REPEATABLE_READ= false
> TRANSACTION_SERIALIZABLE= TRUE
>
> Here's what I get on the ORACLE Client machine:
> Connecting to jdbc:oracle:thin:system/oracle8_at_grolsh:1521:ENSO
> Connected
> Supports Transaction Isolation level..
> TRANSACTION_NONE= false
> TRANSACTION_READ_UNCOMMITTED= TRUE
> TRANSACTION_READ_COMMITTED= false
> TRANSACTION_REPEATABLE_READ= false
> TRANSACTION_SERIALIZABLE= false
>
> I need the ORACLE Client machine to allow ORACLE access with the
> same level of support as on the Server machine.
> How can I do this ?
>
> --
> | Mark Plotnick | mailto: plotnick_at_ensodex.com |
> | Ensodex Inc | phone +1 (651) 766 7223 |

--

PS: Folks: BEA WebLogic is in S.F., and now has some entry-level positions for people who want to work with Java and E-Commerce infrastructure products. Send resumes to joe_at_beasys.com


                    The Weblogic Application Server from BEA
         JavaWorld Editor's Choice Award: Best Web Application Server
  Java Developer's Journal Editor's Choice Award: Best Web Application Server
     Crossroads A-List Award: Rapid Application Development Tools for Java
Intelligent Enterprise RealWare: Best Application Using a Component Architecture
               http://weblogic.beasys.com/press/awards/index.htm



Received on Tue Feb 01 2000 - 13:05:23 CST

Original text of this message

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