Java Heap Space Exception,包含大量数据,任何解决方案?

时间:2010-12-03 19:54:14

标签: java oracle ms-access heap-memory

我对java堆内存有一个小问题 我正在尝试从oracle数据库11g迁移到访问文件2007

这不是65.000记录以下的问题,现在从那里...... 该应用程序抛出java堆异常,内存消耗超过600m,CPU使用率超过50%直到执行。

据我所知rset.next()没有得到所有数据(超过50列x +65000行),但有些记录x时间 我也尝试设置获取大小,没有发生任何事情

rset.setFetchSize(1000);

我删除了我的代码并显示输出,同样的错误

while (rset.next()) {
 if (cont % 5000 == 0) {
     System.out.println(cont + " proccesed and counting ...");
 }
}

请不要给我使用-xm(s,x)512,1024等的答案... 这可以解决,而不是在我的特殊情况下(我试图设置更高的xD,没有任何事情发生,我在65.000记录也得到了同样的例外)

我可以尝试其他选择吗? meaby更改一些驱动程序配置或字符串连接? 请帮忙

抱歉我的英语

这是我的联系:

Class.forName("oracle.jdbc.driver.OracleDriver");
this.conn = DriverManager.getConnection("jdbc:oracle:thin:@" + getServer() + ":1521:orcl", getUser(), getPassword());
                this.stmt = this.conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_UPDATABLE);

1 个答案:

答案 0 :(得分:2)

看起来问题是您正在使用Scrollable ResultSet并且将使用更多内存。