我们的产品使用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)
答案 0 :(得分:0)
如果它在一台计算机上运行而在另一台计算机上运行,则可能是JVM的问题。另请参阅this issue report for the Sun JVM。
顺便说一下,你使用的是H2版本1.0.72(内部版本号包含在错误代码[90031-72]中),这是相当陈旧的。您是否考虑升级到更新版本的H2?
答案 1 :(得分:0)
我找到了原因。
实际上我们会定期更新数据库文件,之后我们重新建立与新文件的JDBC连接。 不幸的是,在重新建立JDBC连接期间发生了错误,因此不会刷新JDBC连接。
这是它的主要原因。
感谢Thomas回答我的问题。 找到理由对我们非常有帮助。