java - 我在向数据库插入记录时遇到 java 堆空间错误?

标签 java oracle heap-memory

我在尝试将记录插入数据库时​​遇到 java 堆空间错误。我不确定 Oracle 为什么能够消耗堆以及为什么它消耗这么多。错误发生在这一行:

 Connection con       = null;
    PreparedStatement ps = null;
    ResultSet rs         = null;
    String sqlString     = null;
    DaoUtility dUtil     = DaoUtility.getInstance();

    try
    {
      con = dUtil.getConnection();
      . . .
      dUtil.executeUpdate(ps);

这是日志:

java.lang.OutOfMemoryError: Java heap space at java.lang.reflect.Array.newArray(Native Method) at java.lang.reflect.Array.newInstance(Array.java:52) at oracle.jdbc.driver.BufferCache.get(BufferCache.java:226) at oracle.jdbc.driver.PhysicalConnection.getCharBuffer(PhysicalConnection.java:7643) at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:2949) at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2355) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3571) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3657) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350) at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:172)

最佳答案

Oracle JDBC 驱动程序因内存消耗而臭名昭著。请阅读 configuration parameters可供您控制其内存消耗。特别注意您的情况的 oracle.jdbc.maxCachedBufferSize

关于java - 我在向数据库插入记录时遇到 java 堆空间错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011897/

相关文章:

java - "on-heap"和 "off-heap"之间的区别

使用 Flume/Hadoop 时 Ubuntu 中的 Java 内存不足异常

java - 从 ArrayList 填充微调器时出现问题

java - Java 中的 Haskell 风格内存

java - 如何在 Scala 中以字符串格式重复参数

java - FileReader 与 BufferedReader 或 FileInputStream 组合

sql - SQL 中的 SELECT 语句用于过滤掉多个条目

oracle - 如何在 PL/SQL 中重用查询 block 以最大程度地减少代码样板和对象意大利面

sql - 甲骨文文本 - "user filter command exited with status 127"

c++ - Pimpl 成语内存使用