问题标签 [autocommit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2805 浏览

solr - SolrJ:禁用自动提交

我们有一个 Solr 实例,我们发现在 solrconfig.xml 中打开 autoCommit 实际上可以很好地满足我们的需求。但是,在某些实例和一些批处理操作中,我们希望暂时禁用自动提交。我找不到任何东西,但我想知道是否有人知道是否可以通过 SolrJ 禁用某个进程的自动提交,然后重新启用它?

0 投票
1 回答
1237 浏览

oracle - JBoss 自动提交到 Oracle 并不总是有效

我有一个非常有趣的情况。我对 JBoss 和 Oracle 有点陌生,主要是在 DB2 上使用 Weblogic。也就是说,我想做的很简单。

我有一个 Oracle 数据库的 local-tx-datasource。在我的 Java I 代码中,我在使用适当的 JNDI 名称检索数据源之后调用 datasource.getConnection()。我的 -ds.xml 文件中的 local-tx-datasource 声明没有对自动提交行为的任何显式引用。

获得连接后,我执行创建/更新查询并返回正确的更新计数。随后,在短时间内,我什至能够检索到该记录。然而,在那之后,数据库就假装它一开始就没有得到记录,什么都没有。

我对连接的经验表明,当连接未提交其工作时会发生这种情况,因此只有该连接本身才能看到其事务中的数据。根据我的阅读,JBoss 也遵循 Connection 返回的规范是自动提交的。我什至从我的 Java 代码中验证了这一点,它指出自动提交行为设置为 true。但是,如果是这种情况,为什么我的记录没有被创建/更新?

在此之后,我将 Connection 的自动提交行为设置为 false(同样来自 Java 代码),然后明确地进行提交。从那时起,就没有问题了。

可能出了什么问题?我对这里自动提交的理解是不正确的,还是 JBoss 对它有其他解释。请注意,我根本没有任何交易。这些是非常简单的单记录插入查询。

0 投票
2 回答
1439 浏览

mysql - DBI begin_work 不适用于存储过程调用

我正在尝试以简化形式从事务中调用存储过程:

这给出了以下错误:

如果我将 begin_work 语句替换为 $dbh->{'AutoCommit'} = 0;(在准备之前或之后),我会收到以下错误:

如果我用一个简单的 select 语句替换存储过程调用,它一切正常。

存储过程包括许多更新,并以一个 select 语句结束。当然,如果我可以在过程中处理事务会更容易,如果发生回滚,我需要执行一些 perl 代码。

我在 Windows 7 上使用 ActivePerl 和一个运行 Centos 并安装了 DBI 1.616 的亚马逊云实例,这两种情况都会发生。

这应该工作还是有办法解决它?

谢谢

0 投票
1 回答
1235 浏览

svn - SVN 提交证书问题

我有一个 cronjob 每五分钟提交一些文件。但是,它不再起作用了。它打印

当我手动运行此脚本时,它不会出错并成功提交。这个问题的原因可能是什么,我该如何解决?谢谢

0 投票
1 回答
3631 浏览

java - 从 Java 应用程序到 Oracle 的 jdbc 连接的自动提交模式

我是否必须调用connection.setAutoCommit(false)才能将几个 DML 语句分组到一个事务中?我有点困惑,因为 jdbc 文档说在自动提交模式下创建了一个新连接。同时,Oracle 没有自动提交事务,如果 DML 语句不存在则开始一个新事务。因此,在我看来,connection.setAutoCommit(false)这是多余的(假设我不考虑切换到不同的 RDMS)。

有人可以澄清一下吗?

谢谢。

0 投票
2 回答
4190 浏览

php - 在php中禁用mysql自动提交不起作用

当然,我可能做错了什么,但我真的不明白为什么以及如何做。

我想在 php 脚本中禁用自动提交。这是因为我个人的 php mysql 框架就是这样工作的。但不知何故无法关闭自动提交。我将 Mysqli 与 engine=InnoDB 表一起使用,并尝试了 mysqli::autocommit 功能以及用于全局和会话的 mysql 语句。

一切都会得到相同的答案:自动提交仍然开启。没有返回错误说我使用了不正确的语句。查询返回 true,尝试提交,返回 true。

我在这里有什么遗漏吗?自动提交必须在运行时关闭,因为它将运行的主机不允许我在服务器设置中禁用它:)

0 投票
2 回答
4801 浏览

mysql - 没有“开始交易”的单个“提交”语句

我正在使用带有 mysqldb 适配器的 web2py dal 来连接到 mysql 服务器。

我的问题:

  1. 为什么在“ set autocommit=0 ”之后需要一个“提交”而不引导“开始事务
  2. 如果 autocommit=0,“select”语句是否开始事务?

服务器信息:innodb engine autocommit=1(默认值) tx_isolation=repeatable-read(默认值)

通用日志:

0 投票
1 回答
4567 浏览

hibernate - 带有 JPA 注释的 Hibernate 单元测试中没有 AUTO COMMIT

我正在尝试为我的持久性代码创建一个单元测试。我正在使用带有 JPA 注释的 Hibernate。我没有persistence.xml(在所有关于JPA 单元测试的文章中都使用了它)。我不想使用spring或创建persistence.xml,因为我有很多持久性类,并且所有这些类的hibernate初始化都需要很多时间,所以我想显式地将类添加到hibernate。

我也不能configuration.createSessionFactory()像在 Hibernate 单元测试文章中推荐的那样使用它,因为我的 DAO 有 Spring 注入的 JPA EntityManager。

所以我正在使用EntityManagerFactoryImpl

这看起来不错,但由于某种原因,没有任何插入触发到 db,而所有选择都可以(我已经显示 SQL 为真)。看起来 AUTOCOMMIT 是错误的(在生产环境中,Spring 管理事务)。如您所见,我将配置设置为 AUTOCOMMIT true,我什至从 EntityManager 检索 JDBC 连接,并且在调试器中看到,自动提交为 true,但只有在我的单元测试中我明确开始并提交事务时才会触发插入。

我做错了什么?如何让我的测试在自动提交中运行?

谢谢!

0 投票
1 回答
5086 浏览

python - python pymysql set autocommit false 失败

我的脚本从文件中读取 MYSQL UPDATE 查询,然后应该使用 autocommit = 0 立即执行它们。但是,如果我删除conn.commit()它仍然会一一运行,尽管我还没有提交。错误在哪里?

0 投票
3 回答
4279 浏览

mysql - 事务是否会增加数据库的开销?

将数据库事务放在我们应用程序中的每个服务方法周围会增加开销吗?

我们目前仅在明确/明显需要的情况下使用数据库事务。我最近建议围绕所有服务方法进行交易,但其他一些开发人员提出了一个谨慎的问题:这会增加开销吗?

我的感觉不是——从数据库的角度来看,自动提交与事务相同。但这准确吗?

数据库:MySQL