“不完整的动态位长度树” H2Database 发生异常
我们的产品使用H2DB来为所有客户分享我们的产品信息。 最近,一位客户报告说他们无法使用我们的系统,并显示以下错误消息。
我将该文件移动到其他服务器,并且工作正常。
有人知道这个问题吗?
05/02/2011 16:17:27,581 警告 [JDBCExceptionReporter] SQL 错误:90031,SQLState:90031 05/02/2011 16:17:27,581 错误 [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 信息 [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 信息 [STDOUT] 位于 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.爪哇:105) 05/02/2011 16:17:27,586 错误 [[action]] servlet 操作的 Servlet.service() 引发异常 05/02/2011 16:17:27,587 错误 [[action]] servlet 操作的 Servlet.service() 引发异常 05/02/2011 16:21:02,367 信息 [STDOUT] 位于 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 05/02/2011 16:21:55,580 错误 [[action]] servlet 操作的 Servlet.service() 引发异常 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
Our product use H2DB to share our product information for all clients.
These days one client report that they can't use our system with below error message.
I move that file to other server, and it work fine.
Is anyone know this issue ?
05/02/2011 16:17:27,581 WARN [JDBCExceptionReporter] SQL Error: 90031, SQLState: 90031
05/02/2011 16:17:27,581 ERROR [JDBCExceptionReporter] IO Exception: java.util.zip.ZipException: incomplete dynamic bit lengths tree; 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 operation: could not execute query; uncategorized SQLException for SQL [XXXXXXX(It is SQL )]; SQL state [90031]; error code [90031]; IO Exception: java.util.zip.ZipException: incomplete dynamic bit lengths tree; zip:YYYYY/H2DB/Database.zip!/Data1.data.db [90031-72]; nested exception is org.h2.jdbc.JdbcSQLException: IO Exception: java.util.zip.ZipException: incomplete dynamic bit lengths tree; 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.service() for servlet action threw exception
05/02/2011 16:17:27,587 ERROR [[action]] Servlet.service() for servlet action threw exception
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.service() for servlet action threw exception
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果它在一台计算机上运行但在另一台计算机上运行不正常,则可能是 JVM 的问题。另请参阅此 Sun JVM 问题报告。
顺便说一句,您使用的是 H2 版本 1.0.72(内部版本号包含在错误代码中,[90031-72]),该版本相当旧。您是否考虑升级到 H2 的最新版本?
If it works on one computer but not the other, it might be a problem of the JVM. See also this issue report for the Sun JVM.
By the way, you are using H2 version 1.0.72 (the build number is included in the error code, [90031-72]) which is quite old. Did you consider upgrading to a more recent version of H2?
我找到了一个原因。
实际上我们会定期更新数据库文件,然后重新建立与新文件的 JDBC 连接。
不幸的是,在重新建立 JDBC 连接期间发生错误,因此 JDBC 连接未刷新。
这是其主要原因。
感谢托马斯回答我的问题。
这对于我们寻找原因是非常有帮助的。
I find a reason of it.
Actually we update database file regularly , and after that we reestablish JDBC connection to new file.
Unfortunately , error happened during reestablish JDBC connection, so JDBC connection isn't refreshed.
That is main reason of it.
Thanks Thomas to answer my question.
It is very helpful for us to find a reason.