db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-1654) Calling Connection.commit() does not throw exception in autocommit mode
Date Wed, 09 Aug 2006 14:58:16 GMT
    [ http://issues.apache.org/jira/browse/DERBY-1654?page=comments#action_12426938 ] 
            
Daniel John Debrunner commented on DERBY-1654:
----------------------------------------------

I think the behaviour mandated by the spec is a useability problem. If I want to write a generic
method that needs to commit or rollback  the transaction at the end of its work I have to
have extra logic that checks to see if auto-commit is on. I've actually never understood the
logic in disallowing these methods (commit & rollback) in auto-commit mode.  Even with
auto-commit true there are points in time in the user application where a transaction is active,
if the applicaiton wants to commit/rollback  that  work why is a different non-intutive api
required (close the Statement and/or all of its ResultSets) rather than the obvious calls
conn.commit() & rollback()?

> Calling Connection.commit() does not throw exception in autocommit mode
> -----------------------------------------------------------------------
>
>                 Key: DERBY-1654
>                 URL: http://issues.apache.org/jira/browse/DERBY-1654
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.1.3.1
>            Reporter: Dyre Tjeldvoll
>            Priority: Minor
>             Fix For: 10.3.0.0
>
>         Attachments: simple.java
>
>
> The jdbc spec (don't know chapter and verse) states that an attempt to call Connection.commit()
when Connection.getAutoCommit() is true, must throw an exception. The attached repro (simple.java)
runs fine with Derby (and Postgres), but fails with MySQL:
> dt136804@khepri29~/java$ java -cp $CLASSPATH:. simple com.mysql.jdbc.Driver 'jdbc:mysql://localhost/joindb'
joinuser joinpass foo4
> java.sql.SQLException: Can't call commit when autocommit=true
>         at com.mysql.jdbc.Connection.commit(Connection.java:2161)
>         at simple.main(simple.java:17)

-- 
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