Menu

java.lang.OutOfMemoryError: Java heap space

Help
2015-03-10
2015-03-10
  • David Martin

    David Martin - 2015-03-10

    I am converting a large data-copy process to UCanAccess / Jackcess. It copies an entire Oracle Schema to MS Access. I think I have the bugs out and I was running what I'd hoped is the final test today, when it crashed because of lack of Heap Space. The complete error is below.

    I am guessing (hoping) that a configuration-change will fix this. Do you have any suggestions?

    Thank you for your help!

    Dave Martin

    INFO | jvm 1 | 2015/03/09 16:38:11 | java.lang.OutOfMemoryError: Java heap space
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.ByteUtil.getBytes(ByteUtil.java:305)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData$Entry.<init>(IndexData.java:1798)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData$Entry.<init>(IndexData.java:1784)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData$Entry.<init>(IndexData.java:1747)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData.newEntry(IndexData.java:1126)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData.readDataPage(IndexData.java:1083)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache.readDataPage(IndexPageCache.java:278)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache.access$700(IndexPageCache.java:49)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$DataPageMain.getExtra(IndexPageCache.java:1262)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$EntryListView.<init>(IndexPageCache.java:1454)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$EntryListView.<init>(IndexPageCache.java:1444)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$DataPageExtra.setEntryView(IndexPageCache.java:1313)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$DataPageMain.setExtra(IndexPageCache.java:1271)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache.readDataPage(IndexPageCache.java:281)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache.access$700(IndexPageCache.java:49)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$DataPageMain.getExtra(IndexPageCache.java:1262)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$CacheDataPage.<init>(IndexPageCache.java:1342)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$CacheDataPage.<init>(IndexPageCache.java:1335)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache.updateEntry(IndexPageCache.java:336)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache.addEntry(IndexPageCache.java:310)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache.access$1000(IndexPageCache.java:49)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexPageCache$CacheDataPage.addEntry(IndexPageCache.java:1430)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData.commitAddRow(IndexData.java:614)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData.access$4100(IndexData.java:58)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData$AddRowPendingChange.commit(IndexData.java:2612)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.IndexData.commitAll(IndexData.java:753)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.TableImpl.addRows(TableImpl.java:1599)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at com.healthmarketscience.jackcess.impl.TableImpl.addRow(TableImpl.java:1461)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at net.ucanaccess.commands.InsertCommand.persist(InsertCommand.java:124)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at net.ucanaccess.jdbc.UcanaccessConnection.flushIO(UcanaccessConnection.java:313)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:203)
    INFO | jvm 1 | 2015/03/09 16:38:11 | at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:147)
    INFO | jvm 1 | 2015/03/09 16:38:12 | net.ucanaccess.jdbc.UcanaccessSQLException: Java heap space
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.UcanaccessPreparedStatement.executeUpdate(UcanaccessPreparedStatement.java:261)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.nassco.ecms.ECMSMirrorDb.copySubmittals(ECMSMirrorDb.java:1349)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.nassco.ecms.ECMSMirrorDb.genMirrorDb(ECMSMirrorDb.java:290)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.nassco.ecms.ECMSReporter.doReport(ECMSReporter.java:1572)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.nassco.ecms.ReportRequestorThread.run(ReportRequestorThread.java:133)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.nassco.ecms.ECMSReporter.processReportParm(ECMSReporter.java:864)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.nassco.ecms.ECMSReporter.run(ECMSReporter.java:701)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at java.lang.Thread.run(Unknown Source)
    INFO | jvm 1 | 2015/03/09 16:38:12 | Caused by: net.ucanaccess.jdbc.UcanaccessSQLException: Java heap space
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:210)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:147)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.ExecuteUpdate.execute(ExecuteUpdate.java:56)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.UcanaccessPreparedStatement.executeUpdate(UcanaccessPreparedStatement.java:258)
    INFO | jvm 1 | 2015/03/09 16:38:12 | ... 7 more
    INFO | jvm 1 | 2015/03/09 16:38:12 | Caused by: net.ucanaccess.jdbc.UcanaccessSQLException: Java heap space
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.UcanaccessConnection.flushIO(UcanaccessConnection.java:344)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:203)
    INFO | jvm 1 | 2015/03/09 16:38:12 | ... 10 more
    INFO | jvm 1 | 2015/03/09 16:38:12 | Caused by: java.lang.OutOfMemoryError: Java heap space
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.ByteUtil.getBytes(ByteUtil.java:305)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData$Entry.<init>(IndexData.java:1798)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData$Entry.<init>(IndexData.java:1784)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData$Entry.<init>(IndexData.java:1747)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData.newEntry(IndexData.java:1126)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData.readDataPage(IndexData.java:1083)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache.readDataPage(IndexPageCache.java:278)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache.access$700(IndexPageCache.java:49)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$DataPageMain.getExtra(IndexPageCache.java:1262)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$EntryListView.<init>(IndexPageCache.java:1454)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$EntryListView.<init>(IndexPageCache.java:1444)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$DataPageExtra.setEntryView(IndexPageCache.java:1313)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$DataPageMain.setExtra(IndexPageCache.java:1271)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache.readDataPage(IndexPageCache.java:281)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache.access$700(IndexPageCache.java:49)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$DataPageMain.getExtra(IndexPageCache.java:1262)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$CacheDataPage.<init>(IndexPageCache.java:1342)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$CacheDataPage.<init>(IndexPageCache.java:1335)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache.updateEntry(IndexPageCache.java:336)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache.addEntry(IndexPageCache.java:310)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache.access$1000(IndexPageCache.java:49)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexPageCache$CacheDataPage.addEntry(IndexPageCache.java:1430)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData.commitAddRow(IndexData.java:614)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData.access$4100(IndexData.java:58)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData$AddRowPendingChange.commit(IndexData.java:2612)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.IndexData.commitAll(IndexData.java:753)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.TableImpl.addRows(TableImpl.java:1599)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at com.healthmarketscience.jackcess.impl.TableImpl.addRow(TableImpl.java:1461)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.commands.InsertCommand.persist(InsertCommand.java:124)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.UcanaccessConnection.flushIO(UcanaccessConnection.java:313)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:203)
    INFO | jvm 1 | 2015/03/09 16:38:12 | at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:147)</init></init></init></init></init></init></init></init></init></init></init></init></init></init>

     
    • James Ahlborn

      James Ahlborn - 2015-03-10

      Unfortunately, it's tough to diagnose an OOME with merely a stack trace. the best way to diagnose an OOME is using a heap dump. analyzing that to determine what is filling up memory is the first step towards determining the source of the problem

       
    • Gord Thompson

      Gord Thompson - 2015-03-10

      UCanAccess uses an HSQLDB "backing database" and by default it tries to keep that database in memory. Try adding ;memory=false to the UCanAccess connection URL, e.g.

      Connection conn=DriverManager.getConnection(
              "jdbc:ucanaccess://c:/db/pippo.mdb" +
              ";memory=false");
      
       
  • David Martin

    David Martin - 2015-03-10

    Gord, I added the memory clause and now it works! Thank you!

     

Log in to post a comment.

MongoDB Logo MongoDB