2

最近,我将ignite版本升级到了2.10.0。这也需要升级 H2 数据库,因为 H2 对 ignite 有硬依赖。所以我将 H2 数据库更新为 1.4.200。

从那时起,我的测试用例就失败了。

错误日志:-

Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Unsupported connection setting "MULTI_THREADED" [90113-200]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:622)
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
    at org.h2.message.DbException.get(DbException.java:205)
    at org.h2.message.DbException.get(DbException.java:181)
    at org.h2.engine.ConnectionInfo.readSettingsFromURL(ConnectionInfo.java:269)
    at org.h2.engine.ConnectionInfo.<init>(ConnectionInfo.java:78)
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152)
    at org.h2.Driver.connect(Driver.java:69)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251)
    at org.apache.ignite.internal.processors.query.h2.ConnectionManager.<init>(ConnectionManager.java:118)
    ... 133 more

我使用 maven 作为我的构建工具。我的 Java 版本是 jdk11.0.9_12。

编辑:

根据H2 版本 1.4.200 发行说明,删除了 MULTI_THREADED 设置,MVStore 引擎始终是多线程的,PageStore 引擎始终是单线程的。

但我没有在我的代码中的任何地方添加 MULTI_THREADED 设置。

编辑:

将 H2 版本更改为 1.4.197 会给出新的异常,如下所示:-

Caused by: org.h2.jdbc.JdbcSQLException: Function "LOCK_MODE" not found; SQL statement:
CALL LOCK_MODE() [90022-197]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)
    at org.h2.command.Parser.readJavaFunction(Parser.java:2699)
    at org.h2.command.Parser.readFunction(Parser.java:2756)
    at org.h2.command.Parser.readTerm(Parser.java:3102)
    at org.h2.command.Parser.readFactor(Parser.java:2587)
    at org.h2.command.Parser.readSum(Parser.java:2574)
    at org.h2.command.Parser.readConcat(Parser.java:2544)
    at org.h2.command.Parser.readCondition(Parser.java:2370)
    at org.h2.command.Parser.readAnd(Parser.java:2342)
    at org.h2.command.Parser.readExpression(Parser.java:2334)
    at org.h2.command.Parser.parseCall(Parser.java:4854)
    at org.h2.command.Parser.parsePrepared(Parser.java:382)
    at org.h2.command.Parser.parse(Parser.java:335)
    at org.h2.command.Parser.parse(Parser.java:307)
    at org.h2.command.Parser.prepareCommand(Parser.java:278)
    at org.h2.engine.Session.prepareLocal(Session.java:611)
    at org.h2.engine.Session.prepareCommand(Session.java:549)
    at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1251)
    at org.h2.jdbc.JdbcConnection.getTransactionIsolation(JdbcConnection.java:815)
    at com.zaxxer.hikari.pool.PoolBase.checkDefaultIsolation(PoolBase.java:479)
    at com.zaxxer.hikari.pool.PoolBase.checkDriverSupport(PoolBase.java:442)
    at com.zaxxer.hikari.pool.PoolBase.setupConnection(PoolBase.java:410)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:363)
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560)
    ... 151 more
4

2 回答 2

0

我遇到了类似的问题,org.apache.ignite:ignite-indexing:2.12.0Micronaut 3.2.6 这对我有用:

    implementation ('com.h2database:h2') {
        version {
            strictly '1.4.197'
        }
    }
于 2022-01-17T19:33:53.157 回答
0

Per Ignite 2.10.0 GitHub,您需要使用版本 1.4.197

也可以mvn dependency:tree | grep h2在项目根目录下运行查看H2依赖

于 2021-08-13T14:43:26.083 回答