jboss在intellij idea中运行时抛出内存不足:堆空间,但在eclipse中运行时没有



直到本周早些时候将一个分支合并到trunk中,更新了大部分公共代码,我的IntelliJ IDEA JBOSS配置一直运行良好。现在,当应用程序运行返回大量数据的查询时,我会得到以下错误:

java.lang.OutOfMemoryError: Java heap space
at oracle.jdbc.driver.PhysicalConnection.getCharBuffer(PhysicalConnection.java:7018)
at oracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.java:907)
at oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:261)
at oracle.jdbc.driver.T4CTTIdcb.receive(T4CTTIdcb.java:127)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:992)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:791)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4219)
at oracle.jdbc.driver.OraclePreparedStatement.doScrollPstmtExecuteUpdate(OraclePreparedStatement.java:9517)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3385)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3431)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342)

奇怪的是,这似乎非常适用于查询oracle并返回大量数据。我已经尝试过增加堆大小来缓解这个问题,但即使将VM选项中应用程序的最大值设置为4GB,将IDE的最大值设为8GB也无济于事。

我们团队的大多数人都使用Eclipse作为IDE,还没有看到这个问题弹出,所以我下载了最新的Eclipse,并将项目拉入并配置为使用相同的值运行(除了VM选项的原始堆大小最大值(,它运行得很好。

有人能告诉我,当通过IntelliJ IDEA运行应用程序时,是什么可能导致内存不足吗?这让我抓狂,我宁愿不必切换IDE,只为了在本地运行应用程序,并附加一个调试器来监视内存中的值,所以如果有人能提供任何见解或额外的步骤来尝试,我会非常感激

我注意到,在周一的合并之后,我们通过ivy文件删除了ojdbc的两个版本,所以我询问了负责迁移到更新的公共代码的程序员,并尝试排除旧版本,但这不是多个版本jdbc驱动程序的完整解决方案。另一位程序员继续清理ivy文件,删除jdbc6的依赖项,只使用最新版本的jdbc8……这解决了问题。

感谢大家的帮助,如果不是因为你们,我不确定我是否会注意到ojdbc jar问题。。。

我仍然很好奇独立/IDA和Eclipse之间的区别是,Eclipse能够处理驱动程序冲突,而其他人则抛出OOME。

相关内容

最新更新