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

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

Temporaryly I fixed this problem, but I know its not the right way. The 'trick' 
is invoke connection's method 'commit()' after preparedstatement was executed.
 I does not invoke Connection.setAutoCommit(false) to disable 'auto commit', 
why I need this operation?
                
> "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

Reply via email to