db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kim Haase (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2060) SET CURRENT ISOLATION in ref.man refers java.sql.Connection.setTransactionLevel instead of java.sql.Connection.setTransactionIsolation
Date Tue, 28 Nov 2006 19:18:24 GMT
    [ http://issues.apache.org/jira/browse/DERBY-2060?page=comments#action_12454080 ] 
            
Kim Haase commented on DERBY-2060:
----------------------------------

Thanks, Bernt. Actually that sentence is in the file rrefsqlj41180.dita. Would it make sense
to change it as follows?

"Issuing this command commits the current transaction whether you are using the network client
driver or the embedded driver. The java.sql.Connection.setTransactionIsolation method behaves
similarly to this command, but it commits the current transaction only if you are using the
network client driver, not the embedded driver."

The file cdevconcepts15366.dita doesn't say anything about this distinction at present. I
will add the following after "To set isolation levels you can use the JDBC Connection.setTransactionIsolation
method
or the SQL SET ISOLATION statement.":

"The JDBC method and the SQL statement behave similarly, except that the JDBC method commits
the current transaction only if you are using the network client driver, while the SQL statement
commits the current transaction whether you are using the network client driver or the embedded
driver."

I also notice that the section that follows cdevconcepts15366.dita, "Configuring isolation
levels" (cdevconcepts22300.dita) says, "You can use the WITH clause to change the isolation
level for the current statement only, not the transaction. ... In all cases except when you
change the isolation level using the WITH clause, changing the isolation level commits the
current transaction."

It sounds as if this last sentence should be changed as follows:

Changing the isolation level commits the current transaction, except in the following cases:
 * When you change the isolation level using the WITH clause
 * When you call the java.sql.Connection.setTransactionIsolation method while you are using
the embedded driver

Is that correct? The best way to compare these sections is probably to look at http://db.apache.org/derby/docs/dev/devguide/devguide-single.html.

(Of course all this may depend on what fix you think is required for DERBY-2064. Should the
setTransactionIsolation method be fixed so that it works in both network server mode and embedded
mode? In that case these differences don't need to be documented.)

I didn't get answers to a couple of questions that I asked in previous comments. I'll assume
the answer is yes and do the following, unless you say otherwise:

1) File an additional bug on the incorrect method name in error message XJ045 (rrefexcept71493.dita).

2) Change the name of the command in rrefsqlj41180.dita to SET ISOLATION instead of SET CURRENT
ISOLATION, for consistency with SET SCHEMA and with the way the command is cross-referenced
in the Developer's Guide.

I'll file a revised patch with these changes.

> 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

        

Mime
View raw message