H2Database上发生了“不完整的动态位长度树”异常

时间:2011-05-04 16:30:46

标签: zip h2

我们的产品使用H2DB为所有客户分享我们的产品信息。 这些天,有一位客户报告他们无法使用我们的系统,并显示以下错误消息。

我将该文件移动到其他服务器,它运行正常。

有人知道这个问题吗?

05/02/2011 16:17:27,581 WARN [JDBCExceptionReporter] SQL错误:90031,SQLState:90031 05/02/2011 16:17:27,581 ERROR [JDBCExceptionReporter] IO异常:java.util.zip.ZipException:不完整的动态位长度树; zip:/home/ads/RealMedia/ads/OpenAd/RMFoundry/H2DB/OasRM_H2.zip!/OasRM.data.db [90031-72]

05/02/2011 16:17:27,582 INFO [STDOUT] org.springframework.jdbc.UncategorizedSQLException:Hibernate操作:无法执行查询;未分类的SQL的SQLException [XXXXXXX(它是SQL)]; SQL状态[90031];错误代码[90031]; IO异常:java.util.zip.ZipException:不完整的动态位长度树; zip:YYYYY / H2DB / Database.zip!/Data1.data.db [90031-72];嵌套异常是org.h2.jdbc.JdbcSQLException:IO异常:java.util.zip.ZipException:不完整的动态位长度树; zip:YYYYY / H2DB / Database.zip!/Data1.data.db [90031-72]

05/02/2011 16:17:27,585 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 05/02/2011 16:17:27,586 ERROR [[action]] servlet操作的Servlet.service()抛出异常 05/02/2011 16:17:27,587 ERROR [[action]] servlet操作的Servlet.service()抛出异常 05/02/2011 16:21:02,367 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 05/02/2011 16:21:55,580 ERROR [[action]] servlet操作的Servlet.service()抛出异常         在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

2 个答案:

答案 0 :(得分:0)

如果它在一台计算机上运行而在另一台计算机上运行,​​则可能是JVM的问题。另请参阅this issue report for the Sun JVM

顺便说一下,你使用的是H2版本1.0.72(内部版本号包含在错误代码[90031-72]中),这是相当陈旧的。您是否考虑升级到更新版本的H2?

答案 1 :(得分:0)

我找到了原因。

实际上我们会定期更新数据库文件,之后我们重新建立与新文件的JDBC连接。 不幸的是,在重新建立JDBC连接期间发生了错误,因此不会刷新JDBC连接。

这是它的主要原因。

感谢Thomas回答我的问题。 找到理由对我们非常有帮助。