最近我从使用H2数据库的Play应用程序中得到IOExceptions。事情是这样的:使用H2数据库的IOException异常
Caused by: java.io.IOException: Block not found in id [1, -68, 2, 2] [1.4.187/50]
at org.h2.mvstore.StreamStore$Stream.read(StreamStore.java:466) ~[com.h2database.h2-1.4.187.jar:1.4.187]
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) ~[na:1.8.0_40]
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) ~[na:1.8.0_40]
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) ~[na:1.8.0_40]
at java.io.InputStreamReader.read(InputStreamReader.java:184) ~[na:1.8.0_40]
at java.io.BufferedReader.fill(BufferedReader.java:161) ~[na:1.8.0_40]
at java.io.BufferedReader.read1(BufferedReader.java:212) ~[na:1.8.0_40]
at java.io.BufferedReader.read(BufferedReader.java:286) ~[na:1.8.0_40]
at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:88) ~[org.hibernate.hibernate-core-4.3.11.Final.jar:4.3.11.Final]
这可能是他们在https://groups.google.com/forum/#!topic/h2-database/myX5RH6cV-8或https://groups.google.com/forum/#!topic/h2-database/Gv5Nu2subzM议论纷纷。这里有人写'1.4.186,1.4.187和1.4.188是易受攻击的版本。'。在我的Play版本(2.4.3)中使用了H2版本1.4.187。
它似乎偶尔发生,到目前为止我找不到任何理由发生。
我想知道为什么没有更多的东西在互联网上找到这个问题。一个不稳定的数据库似乎相当重要。我只是将版本设置为最新版本1.4.191,并会密切监视它。有没有人有过与H2和Play类似的经历?
嘿!我有同样的问题。显然在那个讨论中他们说这个问题已经解决了,但是我使用的是build 1.4.191,我一遍又一遍地看到了这个问题。这是在关闭数据库连接进行了一些更改之后开始的,因此我确定它是相关的。我会继续调查和阅读,看看我是否找出解决方案。 –