10

我们有一个带有本地 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)

有谁知道打开这个并分析问题所在?

4

3 回答 3

7

通常,当数据库损坏时会发生此异常。尝试备份数据库。有关此主题的另一个讨论,请参见此处

于 2012-05-07T10:55:37.530 回答
0

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

于 2012-10-29T19:34:42.447 回答
0

确保如果数据库非常大,则为堆分配更多内存。查看Java 堆空间内存不足

于 2017-05-24T06:36:05.660 回答