You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "David Chan (JIRA)" <ji...@apache.org> on 2012/08/31 16:24:07 UTC

[jira] [Commented] (DERBY-5915) "Cannot close a connection while a transaction is still active" when using PreparedStatement

    [ https://issues.apache.org/jira/browse/DERBY-5915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13445983#comment-13445983 ] 

David Chan commented on DERBY-5915:
-----------------------------------

I referenced a bug report  https://issues.apache.org/jira/browse/DERBY-3806 and changed preparedstatement's constructor to:

PreparedStatement file_stmt = conn.prepareStatement(OperationSql.NEW_FILE, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,ResultSet.CLOSE_CURSORS_AT_COMMIT);

BUT it does not make thing better!
                
> "Cannot close a connection while a transaction is still active" when using PreparedStatement
> --------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5915
>                 URL: https://issues.apache.org/jira/browse/DERBY-5915
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.9.1.0
>         Environment: java 1.6+windows 7
>            Reporter: David Chan
>
> create a Preparedstatement, set its parameters, then execute it. Exception throwed when closing connection.
> 	PreparedStatement file_stmt = conn.prepareStatement(OperationSql.NEW_FILE);
>         file_stmt.setString(1, rel_path);
> 	file_stmt.setString(2, short_name);
> 	file_stmt.setInt(3, INITIAL_VERSION);
>         int inserted  = file_stmt.executeUpdate();
>         //System.out.println(inserted);
>         file_stmt.close();
>         conn.close();
> Exception:
> java.sql.SQLException: Cannot close a connection while a transaction is still active.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.checkForTransactionInProgress(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.close(Unknown Source)
> BTW,  I want to use Derby as desktop db  of a client application and found it is REALLY buggy!!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira