java.lang.OutOfMemoryError:从Oracle读取JDBC时的Java堆空间

时间:2010-06-21 20:39:01

标签: java oracle

通过JDBC从11g Oracle数据库读取时,我收到了java.lang.OutOfMemoryError:Java堆空间消息。我将defaultRowPrefetch设置为10000,将其减少到2000似乎解决了这个问题。但是,向JVM(-xmx)添加额外内存并不能解决问题。这个问题似乎只出现在64位java 1.6中 - 我没有在32位java中看到这个问题。

我的问题是,我可以更改哪些设置以允许我的应用程序使用较大的defaultRowPrefetch运行?

2 个答案:

答案 0 :(得分:2)

您正在编辑正确的设置(虽然它是-Xmx,而不是-xmx),但听起来您需要进一步增加它,例如。

-Xmx256m

就64位的问题而言,你会发现64位JVM比32位JVM更快地耗尽堆(这是有道理的,指针是两倍大小),所以64位JVM无论如何都需要更多的堆。

答案 1 :(得分:1)

不能内存也会缺少PermGen吗?更多的是内存而不仅仅是堆

-XX:MaxPermSize=128m