草庐IT

TRANSACTIONS

全部标签

java - JPA 并发事务

我在使用JPA-1.0、Hibernate和MySQL5.0.84(innoDB表)以及Postgres8.1.11(不同客户端的不同数据库)的并发事务时遇到问题。我不知道我是否遗漏了一些关于配置的东西,因为我已经阅读了关于JPA事务的规范,并且根据我遇到的问题,我需要为事务注释指定特定的隔离级别。我这样做了,但它只是一起关闭了事务,所以没有任何内容被保留/更新。我正在做的是,向Web服务器(在我的例子中是tomcat)启动httpposts,然后当http请求进入时,它会尝试生成多个数据库事务。每个事务包含1次插入和2次更新。但是,问题似乎总是出现在最终更新中,这是基于先前的插入。所

java - 使用多个连接的单个事务。 (MySQL/JDBC)

我正在处理的应用程序是一个基于Java的ETL过程,它将数据加载到多个表中。DBMS是Infobright(一种基于MYSQL的DBMS,适用于数据仓库)。数据加载应该以原子方式完成;但是,出于性能原因,我想同时将数据加载到多个表中(使用LOADDATAINFILE命令)。这意味着我需要打开多个连接。是否有任何解决方案可以让我以原子方式并行执行加载?(我猜答案可能取决于我加载到的表的引擎;其中大部分是Brighthouse,它允许事务,但没有XA也没有保存点)。为了进一步说明,我想避免这样的情况:我将数据加载到5个表中我提交前4个表的负载第5个表的提交失败在这种情况下,我无法回滚前4个

mysql - 在事务中,如何在事务完成之前阻止读取受影响的行?

我相当确定这有一个简单的解决方案,但到目前为止我还没有找到它。提供一个隔离级别设置为SERIALIZABLE的InnoDBMySQL数据库,并给出如下操作:BEGINWORK;SELECT*FROMusersWHEREuserID=1;UPDATEusersSETcredits=100WHEREuserID=1;COMMIT;我想确保一旦发出事务内的选择,对应于userID=1的行就被锁定以供读取,直到事务完成。就目前而言,对该行的更新将等待事务完成(如果它正在处理中),但选择只会读取先前的值。我知道这是这种情况下的预期行为,但我想知道是否有一种方法可以锁定该行,使SELECT也将等待

Mysql InnoDB 行锁定读取

我已经阅读了mysql文档,也许我只是不太理解。我正在寻找的是来自其他session的阅读的行锁定。当该行被锁定时,我希望其他session等待直到锁定被释放。我不希望其他session从快照中读取!他们必须等到发布!我想得到的与下面的例子完全一样,但是是单行而不是整表锁:STARTTRANSACTIONLOCKTABLEStable1WRITESELECT*FROMtable1WHEREid=40912UPDATEtable1SETcolumn1='value1'WHEREid=40912UNLOCKTABLESCOMMIT提前致谢! 最佳答案

mysql - 使用 sequelize.js 在 2 个表之间嵌套 mysql 事务

我有2个Sequelize模型(与2个表关联的事件和库存)。我创建了一个Event._create方法,以便我可以使用它在事件数据库中创建一个事件,同时在库存数据库中记录多个产品。每个list都与新创建事件的event_id相关联。因为所有这些东西都应该成功或完全失败,所以我使用sequelize的事务来实现这一点。最初我想做这样的事情。sequelize.transactionPromise=Promise.promisify(sequelize.transaction,sequelize);returnsequelize.transactionPromise({autocommit

mysql - 如何只更新 DB2 中的一条记录?

在DB2中,我需要做一个SELECTFROMUPDATE,将更新+选择放在单个事务中。但我需要确保每次交易仅更新一条记录。熟悉MySQL'sUPDATE中的LIMIT子句选项placesalimitonthenumberofrowsthatcanbeupdated我在DB2'sUPDATEreference中寻找类似的东西但没有成功。如何在DB2中实现类似的东西?编辑:在我的场景中,我必须根据要求提供1000个优惠券代码。我只需要选择(任何)一个尚未给出的。 最佳答案 这个问题使用了一些模棱两可的术语,让人不清楚需要完成什么。幸运的

mysql - 数据库触发器对于跨表完整性约束是否安全?

我建议使用触发器来检查交叉表完整性约束回答thisquestion.评论里有人提出可能会出问题:Triggerstodocrossrowchecksrarelyworkonmostdatabases...becausetheycannotreaduncommittedrowsfromothertransactions不过,我还没有找到支持该说法的任何来源。Officialdocumentation没有提到任何东西。我发现的其他问题已涵盖hereonSO-它主要批评潜在的隐藏复杂性,因为触发因素乍看之下不可见。但即使是highestratedanswer承认他们使用完整性问题。所以我的问

java - c3p0 说 - "java.lang.Exception: DEBUG ONLY: Overdue resource check-out stack trace"开始 hibernate 事务

最近,我的tomcat开始挂了。这些请求从未得到答复。我发现这是因为连接从未返回到连接池。我用过带hibernate的c3p0,数据库是mysql5.5为了调试连接泄漏,我在hibernate.cfg.xml中添加了以下属性30true添加它们后,在日志中显示:[2013-10-1223:40:22.487][INFO]BasicResourcePool.removeResource:1392-Achecked-outresourceisoverdue,andwillbedestroyed:com.mchange.v2.c3p0.impl.NewPooledConnection@1f0

java - 将@Transactional 与 JOOQ 一起使用

我正在试用JOOQ,我下定决心要做的第一件事就是运行一个事务性单元测试,它会自动回滚。我似乎没有得到它的工作,我不知道从这里去哪里。日志显示事务已启动并回滚。但更改仍会提交到数据库。我该怎么做才能使Spring中的事务与JOOQ正常配合使用?2013-11-0423:41:14,353[main]DEBUGDataSourceTransactionManager:Creatingnewtransactionwithname[insertPersons]:PROPAGATION_REQUIRED,ISOLATION_DEFAULT;''2013-11-0423:41:14,369[mai

mysql - 续接交易 : ER_LOCK_WAIT_TIMEOUT

我在使用mysql(5.6.17)Sequelize事务时遇到问题,我有一个插入语句和两个更新,应该全部完成或都不完成,但是最后transactions.create似乎在滚动返回,但driver.update执行并且不回滚,第三次更新是trip.update语句,没有任何更改或回滚,控制台挂起,几秒钟后抛出这个错误:Executing(42a68c8e-8347-45af-b9a2-7b0e7a89606b):STARTTRANSACTION;Executing(42a68c8e-8347-45af-b9a2-7b0e7a89606b):SETSESSIONTRANSACTIONIS