Java内存泄漏 - OOM堆大小

时间:2014-06-09 18:56:29

标签: java oracle memory-leaks out-of-memory memory-profiling

我的应用程序一直运行良好。我们的运营团队提供了一个upadte,我看到Oracle JDBC驱动程序(11.2.0.3)已更新,JDK已更新为1.6.30。

我一直在阅读所有博客,并检查过任何未关闭的错过的连接,但这些都没有解决我的问题。 我发现一旦处理完成,一旦运行方法分配的内存就不会被释放。

我已将finally块添加到我查询的所有方法

    } finally {
        try {
            if (results != null) {
                results.close();
                results = null;
            }
        } catch (Exception e) { resources.logException(this.getClass().getName(), e);}
        try{
            if (statement != null) {
                statement.close();
                statement = null;
            }
        } catch (Exception e) { resources.logException(this.getClass().getName(), e); }
        try{
            if (connection != null) {
                resources.free(connection);
                connection.close(); 
                connection=null;
            }
        } catch (Exception e) { resources.logException(this.getClass().getName(), e); }
    }

我的应用程序运行几个小时,然后抛出OutofMemory - Java堆大小。 我还运行了核心转储和堆转储 - 我分析了HPROF文件 - 我认为这是一个可疑的

" oracle.jdbc.driver.T4CConnection"的5,832个实例,由" sun.misc.Launcher $ AppClassLoader @ 0x96fe0a10"加载占用348,070,864(67.53%)个字节。这些实例是从" java.util.WeakHashMap $ Entry []"的一个实例引用的,由""

加载

如果我遗失了什么,请告诉我。

我还将-XMX更改为1024,但仍然没有更改(设置为256)

0 个答案:

没有答案