调用存储过程时内存泄漏

时间:2011-03-09 12:45:29

标签: java sql memory-leaks

我的程序中某处出现了内存泄漏,使用了一些工具,我认为这是我代码中的位置。那么,这个函数是否有问题以及如何调用存储过程?

CustomSQLConn在创建时会被赋予该类。

private void flagDeleted(ABCDocument mydoc){
    try {           

        ResultSet rs1 = null;
        try{
            CallableStatement cs1;
            cs1 = CustomSQLConn.prepareCall("{ call flagFolderDeleted(?) }");
            cs1.setInt(1, mydoc.getId());
            cs1.execute();
        }catch (Exception e){
            System.out.println("Got an exception: " + e.getMessage()); 
            e.printStackTrace();
        }finally{
            if(rs1 != null) rs1.close();
            rs1 = null;
        }
    }catch (Exception e) {
        System.out.println("Got an exception: " + e.getMessage()); 
        e.printStackTrace();
    }
} // END flagDeleted    

这里也没有关闭连接,因为类将它用于其他进程。

1 个答案:

答案 0 :(得分:5)

您正在关闭ResultSet但未关闭CallableStatement