jboss 抛出内存不足:堆 space while 运行 in intellij idea 但不是 when 运行 in eclipse

jboss throws out of memory: heap space while running in intellij idea but not when running in eclipse

直到本周早些时候将一个分支合并到 t运行k 中更新了大部分公共代码,我的 IntelliJ IDEA JBOSS 配置工作正常.现在,当应用程序 运行 查询 returns 大量数据时,我收到以下错误:

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 的 2 个版本,所以我询问了负责迁移到更新的公共代码的程序员关于它和我尝试排除旧版本,但这不是 jdbc 驱动程序多个版本的完整解决方案。另一个程序员继续清理 ivy 文件以删除 jdbc6 的依赖项并仅使用最新版本的 jdbc8...这解决了问题。

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

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