>>>>>>>>>>>> Daniel John Debrunner (JIRA) wrote (2006-11-28 11:25:22):
>     [ 
> http://issues.apache.org/jira/browse/DERBY-2060?page=comments#action_12454083 
> ] 
>             
> Daniel John Debrunner commented on DERBY-2060:
> ----------------------------------------------
> 
> Connection.setTransactionIsolation() does commit the transaction
> with the embedded driver unless the isolation is being changed to
> the current isolation, ie. no change.

Yes, you're right (but the netowrk driver will *always* commit). The
problem is that a user may accidentally change the behaviour of his
program just by altering a setTransactionIsolation call, even if the
change in isolation level per se should not cause a change.

I think that we should not allow setTransactionIsolation on an active
transaction, and make Derby conformant with SQL 2003, where you're not
allowed to do SET TRANSACTION if there is an active transaction or if
there are any open holdable cursor from the last transaction (See
section 16.2)

(The JDBC spec and Javadoc (both 1.4 and 1.6) says it's implementation
defined, while the tutorial, 3rd ed., says that the call *will*
commit. [sigh!])

> 
> > SET CURRENT ISOLATION in ref.man refers 
> > java.sql.Connection.setTransactionLevel instead of 
> > java.sql.Connection.setTransactionIsolation
> > --------------------------------------------------------------------------------------------------------------------------------------
> >
> >                 Key: DERBY-2060
> >                 URL: http://issues.apache.org/jira/browse/DERBY-2060
> >             Project: Derby
> >          Issue Type: Bug
> >          Components: Documentation
> >            Reporter: Bernt M. Johnsen
> >         Assigned To: Kim Haase
> >         Attachments: DERBY-2060.diff, DERBY-2060.zip
> >
> >
> > On SET CURRENT ISOLATION statement in the Derby refernce manual:
> > "Issuing this command commits the current transaction, which is consistent 
> > with the java.sql.Connection.setTransactionLevel method."
> > The correct method name is java.sql.Connection.setTransactionIsolation 
> > (java.sql.Connection.setTransactionLevel does not exist)
> > BTW: setTransactionIsolation will commit the current transaction if called 
> > in the client driver but not in the embedded driver. See DERBY-638
> 
> -- 
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the administrators: 
> http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see: http://www.atlassian.com/software/jira
> 
>         

-- 
Bernt Marius Johnsen, Database Technology Group, 
Staff Engineer, Technical Lead Derby/Java DB
Sun Microsystems, Trondheim, Norway

Attachment: pgp0SIHU1W7fW.pgp
Description: PGP signature

Reply via email to