【发布时间】:2019-05-21 22:26:38
【问题描述】:
我们正处于需要为我们的应用程序用 Postgresql 数据库替换 H2 数据库的阶段。我们遵循以下 URL 中给出的指南。
网址:How can the Corda node be extended to work with databases other than H2?
网址:Replacing h2 database with some other relational database in Corda
但是,要连接Postgresql的节点运行失败,抛出异常“Cannot commit when autoCommit is enabled”。
我们通过运行命令在 Postgresql 中关闭自动提交 “\设置自动提交关闭;”在PSQL工具中,但仍然是节点抛出了上述异常。
我们使用的是 Corda V1。 我们是否应该迁移到更高版本 - V2、V3?
【问题讨论】:
-
自动提交是一个连接(会话)特定的属性。在 psql 命令行客户端中将其设置为关闭对其他连接没有影响。 JDBC 不允许调用以自动提交方式提交,但连接默认为自动提交。所以要么你需要禁用自动提交(使用
connection.setAutoCommit(false)或者不在你的代码中调用提交。 -
有全局设置吗?
-
否,尽管有时连接池或 JDBC 驱动程序具有默认禁用它的连接属性。例如 HikariCP(似乎是 Corda 使用的),有一个属性
autoCommit可以设置为 false 来禁用它。
标签: corda