草庐IT

transaction-synchronized

全部标签

php - 消息为 'PDOException' 的未捕获异常 'There is no active transaction'?

这是我用来插入记录的代码。每当出现插入错误时,即使我回滚了,订户表自动增加的编号仍会增加?问题是什么?我只想在发生错误时不添加自动递增数字。非常感谢您的帮助。$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$conn->setAttribute(PDO::ATTR_AUTOCOMMIT,FALSE);$conn->beginTransaction();try{$email=$_POST['Email'];$FirstName=$_POST['FirstName'];$LastName=$_POST['LastN

再有人说synchronized是重量级锁,就把这篇文章扔给他看

synchronized作为Java程序员最常用同步工具,很多人却对它的用法和实现原理一知半解,以至于还有不少人认为synchronized是重量级锁,性能较差,尽量少用。但不可否认的是synchronized依然是并发首选工具,连volatile、CAS、ReentrantLock都无法动摇synchronized的地位。synchronized是工作面试中的必备技能,今天就跟着一灯一块深入剖析synchronized底层到底做了哪些优化?synchronized是用来加锁的,而锁是加在对象上面,所以需要先聊一下JVM中对象构成。1.对象的构成Java对象在JVM内存中由三块区域组成:对象头

使用 BEGIN 和 START TRANSACTION 时 MySQL AUTOCOMMIT 状态

我需要在我的MySQL项目中使用事务。但我不确定是否必须使用mysql_query("SETAUTOCOMMIT=0");或不。我知道我有2个选择:开始开始交易我还听说这两项中的一项不需要使用AUTOCOMMIT=0。请帮助我知道什么时候我必须使用AUTOCOMMIT=0实际使用BEGIN或STARTTRANSACTION?谢谢。 最佳答案 如themanual中所述:Bydefault,MySQLrunswithautocommitmodeenabled.Thismeansthatassoonasyouexecuteastatem

java - hibernate javax.persistence.RollbackException : Error while committing the transaction

我正在使用Hibernate和MySQL开发一个Java网络应用程序。有时,当我尝试持久化事物时,会出现回滚异常:javax.persistence.RollbackException:Errorwhilecommittingthetransactionatorg.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:94)atcom.tulips.dao.CommentDao.saveOrUpdate(CommentDao.java:42)atcom.tulips.servlets.CommentsSer

Could not open JDBC Connection for transaction; nested exception is java.sql.SQLNonTransientConnecti

在练习事务的相关代码时候一直报这个错误,也就是连接数据库连接异常,可以尝试从以下几个方面排查和解决:1.安全协议问题:useSSL设置为false&useSSL=false配置数据连接的字段上加一个useSSL=false;2.时区问题:在连接字符串加serverTimezone=UTC再不行试试jdbc:mysql://ip:3306/database?serverTimezone=GMT3.请求量太高导致数据库连接数不够:修改最大连接数使用MyBatis的SqlSession是不会自动关闭数据源连接的,需要使用Spring包装过的SelSqlSessionTemplate才会自动关闭数据源

Mysql - 序列化失败 : 1213 Deadlock found when try to get lock; try restarting transaction

我有菜单、类别和产品表。我正在使用mysql5.5,所有表都是innoDB并且在所有情况下id都是具有自动增量的主键(int)。menustableid,name,statuscategoriestableid,menu_id,nameproductstableid,menu_id,category_id,status,name,url,content多个脚本可以并行运行,执行包含以下逻辑的同一个php文件。STARTTRANSACTION;SETautocommit=0;LOCKTABLESproductsWRITE,categoriesWRITE,menusWRITE;SELECT

mysql - InnoDB : Bulk insert using transaction OR combine multiple queries?

在InnoDB中执行批量INSERT时,我应该使用事务吗STARTTRANSACTION;INSERTINTOtbl_name(a,b,c)VALUES(1,2,3);INSERTINTOtbl_name(a,b,c)VALUES(4,5,6);INSERTINTOtbl_name(a,b,c)VALUES(7,8,9);COMMITTRANSACTION;或者合并多个查询?INSERTINTOtbl_name(a,b,c)VALUES(1,2,3),(4,5,6),(7,8,9);如果重要的话,我正在使用PHP和MySQL数据库在同一台机器上。 最佳答案

java - apache commons dbcp 连接池错误 : Timeout waiting for idle object in a Spring + Hibernate app using Spring Transactions

我已经阅读了各种Stackover流程​​问题和网络上关于类似问题的内容。但是,我找不到有用的提示来缩小我的问题范围。这是导致此错误的用例。2entitiesCampusandPrograms-->One-to-manyrelationfromCampustoProgramandOne-to-onefromProgramtoCampus.iamtryingtocreatemultipleprogramsassociatedwithcampuses.Eachinsertwillcreateanewprogramwithsamedetailsandattachittoadifferent(

php - NOW() for DATETIME InnoDB Transaction guaranteed?

在单个InnoDB事务的2+个查询中使用NOW()是否保证插入的日期时间值在数据库中是准确的?换句话说,即使您在使用它的单个事务中有超过20个查询,NOW()是否总是相同,还是会改变? 最佳答案 Apparentlyitisnotguaranteed跨事务但可以从语句更改为语句。有一个解决方法可以使用asshownhere:BEGIN;SELECT@now:=NOW();INSERT...VALUES(...,@now,...);INSERT...VALUES(...,@now,...);UPDATE...@now...;COMMI

Python3 - 'Lock wait timeout exceeded; try restarting transaction' 并且只处理数据库

使用Python我一直得到一个(1205,'Lockwaittimeoutexceeded;tryrestartingtransaction')每当我尝试插入特定表时出错。但是,当我尝试直接从MySQL控制台插入时,它工作得很好。展望SHOWFULLPROCESSLIST数据库显示没有其他事件查询。因为这是一个没有附加实时应用程序的开发数据库,​​所以我无法想象有任何问题。但是,它是在托管我们的生产数据库的服务器上提供的,因此我强烈希望尽可能不要进行重置。关于如何调试这个有什么建议吗?注意如果我使用SHOWFULLPROCESSLIST查看正在对数据库运行的查询,最终失败并显示上述消息