HSQLDB SQLException:内存不足,建立数据库连接

时间:2012-05-04 11:14:51

标签: java hsqldb

我们有一个带有本地HSQLDB数据库的桌面应用程序。一些客户报告他们的应用程序停止工作。当我尝试使用DbVisualizer打开它时,我可以在调试控制台上看到它:

12:45:32 [DEBUG pool-2-thread-1 D.?] RootConnection:     jdbcDriver.connect("jdbc:hsqldb:C:\test\database.db", {user=**, password=})
java.sql.SQLException: error in script file line: 56 out of memory
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source)
    at org.hsqldb.jdbcDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbcDriver.connect(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.onseven.dbvis.d.B.D.?(Z:1548)
    at com.onseven.dbvis.d.B.F$A.call(Z:278)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

任何人都知道要做些什么来打开它并分析问题是什么?

3 个答案:

答案 0 :(得分:7)

通常,当数据库损坏时会发生此异常。尝试备份数据库。有关此主题的其他讨论,请参阅here

答案 1 :(得分:0)

使用不兼容的驱动程序版本打开HSQLDB数据库时可能会出现此错误。例如,我在使用版本2.2.8打开以版本1.8.1.3保存的HSQLDB数据库时收到它。我使用SQuirrel来查看这些数据库,并且必须设置一些不同的驱动程序来支持每个版本。我认为DB Visualizer具有类似的能力。

答案 2 :(得分:0)

如果数据库非常大,请确保为堆分配更多内存。见Java heap space out of memory