Cannot close a connection while a transaction is still active.

使用javaDB的时候报这个错误,

具体就是,在shutdown的时候.代码如下

    public void shutdown() {
        logger.debug("   Shutdown database. ");
        try {
            if (s != null) {
                logger.debug("      Close statement");
                s.close();
            }
            if (conn != null) {
                logger.debug("      Close connection");
                conn.close();
            }
        } catch (SQLException e) {
            logger.error("SQLException in shutdown. ", e);
            return;
        }

        try {
            DriverManager.getConnection("jdbc:derby:;shutdown=true");
        } catch (SQLException se) {
            logger.debug("   Database shut down normally");
        }
  }

报错的位置就是conn.close();

原因:

  还有事物未关闭.

解决方案:

  在conn.close();之前加一句 conn.rollback();

 

 

posted @ 2013-08-16 16:02  苍云古齿  阅读(525)  评论(0)    收藏  举报