使用javax.sql.DataSource管理H2数据库,该数据库使用连接字符串保存到名为mydb.mv.db的文件中,如下所示:
jdbc:h2:mydb;DATABASE_TO_UPPER=false;MODE=MySQL;
此外,我们已使用以下连接字符串进行测试:
jdbc:h2:mydb;DATABASE_TO_UPPER=false;MODE=MySQL;INIT=create table if not exists mytable(...);
mv.db文件已经包含一个包含大约600k数据的表。数据包括普通的东西(int和varchars)以及longblob字段。我的发行版包含自己的JRE7包。
我们已经部署到运行Windows7的多个客户。一切都按预期为每个人工作 - 除了一个。对于该客户,该表未找到,并且没有这样的表"错误被抛出。如果我们包含"创建表,如果不存在"在连接字符串INIT中,然后重新创建表并且文件大小缩小到12k(这看起来很可疑 - 就像文件被完全忽略并简单地用空白数据库覆盖一样)。
什么可能导致这个在某些系统上运行而在其他系统上运行失败(所有Win 7/64位)?
有关进一步的背景,以下是我们考虑和排除的一些可能原因: