0

我将 HSQLDB 与单个 DB 和 4 个表一起使用。我正在使用 commons apache 汇集数据源。

场景如下:

表 1-3 在一个事务中更新,因此在同一连接上(不同的 sql 语句)。他们使用自动提交 false 并调用 executeUpdate() 和 executeBatch()。在此事务结束时,有时(不是每次)都会调用“检查点”。

表 4 与其他表同时更新,但使用另一个连接。更新批次,然后总是调用“检查点”。在这个检查点,一切都挂起,调用永远不会返回,并且无法访问该数据库中的任何表。在日志文件中,我看到第 4 个表的“检查点”永远不会到达。

当有一个使用自动提交 = false 的打开连接时,我无法执行检查点吗?

会不会是僵局?

我不知道是什么问题......没有这个表#4一切正常。

4

1 回答 1

1

您可以在有其他打开的连接时执行 CHECKPOINT。执行 CHECKPOINT 的连接在锁定数据库和执行检查点之前等待所有其他连接提交。

因此,您必须在执行检查点之前完成所有操作并提交。

于 2013-08-29T08:03:48.193 回答