我收到 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.lang.reflect.Array.newArray(Native Method) at java.lang.reflect.Array.newInstance(Array.java:52) at oracle.jdbc.driver.BufferCache.get 的 Java 堆空间(BufferCache.java:226) 在 oracle.jdbc.driver.PhysicalConnection.getCharBuffer(PhysicalConnection.java:7643) 在 oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:2949) 在 oracle.jdbc.driver.OraclePreparedStatement。 processCompletedBindRow(OraclePreparedStatement.java:2355) 在 oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3571) 在 oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3657) 在 oracle.jdbc.driver.OraclePreparedStatementWrapper .在 weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:172)处执行更新(OraclePreparedStatementWrapper.java:1350)