我们希望从jar文件中访问HSQLDB Db
个文件(*.data, *.properties, *.script)
。
res HSQLDB适用于小型HSQLDB DB文件。当DB文件的大小变大时,它会变慢。当文件大小变得很大时,它就会死掉。我们项目中的DB文件大小为2.1GB,它会死掉(参见下面的err-msg)。我们无法使用work around方法将这些数据库文件解压缩到java.io.tmpdir
因为规范..)
使用res HSQLDB时,有没有人知道Db文件大小的大小限制?
=========== 2015-05-05T15:31:15.072-0400 SEVERE DataFileCache.open
java.io.IOException: read beyond end of file at org.hsqldb.persist.RAFileInJar.readIntoBuffer(Unknown Source) at org.hsqldb.persist.RAFileInJar.readInt(Unknown Source) at org.hsqldb.persist.DataFileCache.open(Unknown Source) at org.hsqldb.persist.Log.getCache(Unknown Source) at org.hsqldb.persist.Logger.getCache(Unknown Source) at org.hsqldb.persist.Logger.newStore(Unknown Source) at org.hsqldb.persist.PersistentStoreCollectionDatabase.getStore(Unknown Source) at org.hsqldb.Table.getRowStore(Unknown Source) at org.hsqldb.TableBase.isEmpty(Unknown Source) at org.hsqldb.TableWorks.addIndex(Unknown Source) at org.hsqldb.StatementSchema.getResult(Unknown Source) at org.hsqldb.StatementSchema.execute(Unknown Source) at org.hsqldb.Session.executeCompiledStatement(Unknown Source) at org.hsqldb.scriptio.ScriptReaderText.readDDL(Unknown Source) at org.hsqldb.scriptio.ScriptReaderBase.readAll(Unknown Source) at org.hsqldb.persist.Log.processScript(Unknown Source) at org.hsqldb.persist.Log.open(Unknown Source) at org.hsqldb.persist.Logger.open(Unknown Source) at org.hsqldb.Database.reopen(Unknown Source) at org.hsqldb.Database.open(Unknown Source) at org.hsqldb.DatabaseManager.getDatabase(Unknown Source) at org.hsqldb.DatabaseManager.newSession(Unknown Source) at org.hsqldb.jdbc.JDBCConnection.(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) ...
答案 0 :(得分:0)
我的第一个猜测是由于整数溢出/ Integer.MAX_VALUE限制:2 ^ 31-1 = 2147483647 bytes = 2.1 GB
您是否尝试过setting
hsqldb.cache_file_scale = 8
dbname .properties文件中的?请注意,在扩充文件之前,您需要先执行SHUTDOWN SCRIPT
:
此属性可以设置为8以增加.data的大小限制 文件从2GB到8GB。要将更改应用于现有数据库, 应首先执行SHUTDOWN SCRIPT,然后执行property = value 在重新打开之前,应将以下行添加到.properties文件中 数据库。
hsqldb.cache_file_scale = 8
可以使用SQL命令设置属性(而不是更改 当数据库没有CACHED时,属性文件中的值) 表(例如新数据库)。 (SET PROPERTY)