【问题标题】:How to fix "Cannot commit when autoCommit is enabled" exception while connecting to PostgreSQL如何在连接到 PostgreSQL 时修复“启用自动提交时无法提交”异常
【发布时间】: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


【解决方案1】:

在相关的堆栈问题(下面的链接)中,回答是corda版本2及更高版本支持postgresql。

(Using PostgreSQL instead of H2 as the Corda node's database)

corda 版本 1 中发现的自动提交问题在 corda 版本 2 及更高版本中可能不存在。

【讨论】:

    猜你喜欢
    • 2013-03-09
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多